gpt4 book ai didi

java - 为什么扫描仪要这样操作?

转载 作者:行者123 更新时间:2023-12-01 18:16:06 25 4
gpt4 key购买 nike

我只是好奇:

假设我设置了一个扫描仪。

Scanner sc = new Scanner (System.in)
int number = sc.nextInt();
String name = sc.nextLine();
System.out.println (number);
System.out.println (name);

会发生的情况是,我什至无法输入姓名,而打印的只是数字。相反,如果我这样做:

Scanner sc = new Scanner (System.in)
int number = sc.nextInt();
String name = sc.next();
System.out.println (number);
System.out.println (name);

然后一切都会顺利进行,但是不能在字符串中使用空格。

为什么扫描的字符串在后面跟着数字后表现得如此有趣。如果我只使用 2 个字符串,它就不会达到看起来的效果。

我知道解决方法是在两者之间添加一个空行,但我只是想知道为什么会发生这种情况。

最佳答案

sc.nextLine() 读取当前行,直到遇到行结束符。如果您在调用读取部分行的 Scanner 方法(nextInt()next())后调用 sc.nextLine(),等等...),它将返回当前行的末尾(如果当前行剩下的都是新行字符,则可能为空)。

因此,在读取部分行的输入后,如果要读取下一行输入,必须先调用 sc.nextLine() 移过当前行,然后才能读取下一行输入将 sc.nextLine() 分配给变量以获取下一行的内容。

关于java - 为什么扫描仪要这样操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406801/

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