gpt4 book ai didi

Java Scanner 通过读取带有空格的字符串来忽略接下来的问题

转载 作者:行者123 更新时间:2023-11-30 03:31:11 24 4
gpt4 key购买 nike

我的扫描仪有问题。我希望程序读取字符串和整数。我有两种不同的情况。例如,我的程序要求用户输入出生年份、全名和城市。

Scanner input = new Scanner(System.in);
int year;
String name;
String city;
String state;

System.out.print("Please enter the year of birth to add: ");
year = input.nextInt();

System.out.print("Please enter full name to add: ");
name = input.nextLine();

System.out.print("Please enter a city to add: ");
city = input.nextLine();

System.out.println("Please enter the state to add: );
state = input.next();

输出:

Please enter the year of birth to add: 22
Please enter full name to add: Please enter a city to add: Denver

第一种情况是程序跳过该问题并询问下一个问题。没有nextLine ,它将收到异常。

对于第二种情况,假设如果城市有两个或多个空间(例如旧金山、纽约市...), nextLine 会帮助还是不帮助?看起来和第一种情况很相似。我知道nextLine将读取带有空格的字符串,但否则仍然会导致问题。我无法解决这个问题。

最佳答案

尝试:

input.nextLine();   //this is totally useless and just eats up the rest of the line

在 nextInt() 之后和 nextLine() 之前。它有效。

问题:在您的代码中,它完全按照您的指示执行。它接收整数,然后继续执行 nextLine()。这是同一行。 nextInt() 不会自动进入下一行。因此,您可以使用 nextLine() 来吃掉最后一行。

解决方案:sc.nextInt() 吃掉整数,但不吃掉新行。如果您选择下一行(与 nextInt() 相同),它将继续查看下一行的真实信息,并且不会跳过问题。

输出:

Please enter the year of birth to add: 199
Please enter full name to add: 1234
Please enter a city to add: 1235123
Please enter the state to add: 1234123

希望这有帮助。

关于Java Scanner 通过读取带有空格的字符串来忽略接下来的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000420/

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