gpt4 book ai didi

java - 不使用 NextLine 读取字符串中的空格作为输入

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:44 25 4
gpt4 key购买 nike

Discription:

我在下面的代码中使用了几个扫描器语句。首先我读“地址”,然后读“手机号码”。然后是用户的一些随机内容。

当我使用adress=sc.next()

它从用户读取地址的字符串值(不带空格)并转到下一个扫描语句,即mobile=sc.nextBigInteger()。通过使用此方法,我无法读取“adress(string)”中的空格,并且它会抛出运行时错误 inputMismatchException。

现在如果我使用adress=sc.NextLine,程序会直接跳转到mobile=sc.nextBigInteger()

在上述情况和下面的代码中如何读取空格作为输入。我如何保护自己免受运行时错误的影响。我在论坛上收到了类似的问题,但没有一个令人满意。谢谢。 (询问我是否需要有关问题的更多信息)

Expected: input(In adress string) : pune maharashtra india

output(in display function) : pune mahrashtra india.

What exactly happened: if input(in adress string) : pune output(in display function) : pune

if input(in adress string) : Pune india
(Now As soon as i entered the string and hit the enter there I get a runtime error as an inputmismatchexception )

> JAVA

public class Data {
Scanner sc = new Scanner(System.in);

String adress;
BigInteger AcNo;
BigInteger mobile;
String ifsc;

void getData() {

System.out.println("Welcome to Bank System");

System.out.println("Please Enter the adress :");
adress= sc.next();

System.out.println("Enter the Mobile Number");
mobile = sc.nextBigInteger();

System.out.println("Enter the Account Number");
AcNo = sc.nextBigInteger();

System.out.println("Enter the IFSC Code");
ifsc= sc.next();
}

public static void main(String[] args) {
Data d=new Data();
d.getData();
}
}

最佳答案

更改此行;

adress= sc.next();

用这一行;

adress = sc.nextLine();

这将解决您的问题。 scan.nextLine() 返回所有内容,直到下一个新行 delimiter\n ,但 scan.next() 不是。

所以所有的代码都会像这样;

public class Data{

String adress;
BigInteger AcNo;
BigInteger mobile;
String ifsc;

void getData() {

System.out.println("Welcome to Bank System");

System.out.println("Please Enter the adress :");
adress = new Scanner(System.in).nextLine();

System.out.println("Enter the Mobile Number");
mobile = new Scanner(System.in).nextBigInteger();

System.out.println("Enter the Account Number");
AcNo = new Scanner(System.in).nextBigInteger();

System.out.println("Enter the IFSC Code");
ifsc = new Scanner(System.in).next();
}

public static void main(String[] args) {
Data d = new Data();
d.getData();
}
}

关于java - 不使用 NextLine 读取字符串中的空格作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52211867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com