我试图了解这三种方法是如何工作的。这是我对它们的理解:
nextLine()
读取当前行的其余部分,即使它为空。 nextInt()
读取一个整数,但不读取转义序列“ \ n”。 next()
读取当前行,但不读取“ \ n”。 假设我有以下代码:
import java.util.Scanner;
public class Welcome2
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Next enter two words:");
int n;
String s1, s2;
n = keyboard.nextInt();
s1 = keyboard.next();
s2 = keyboard.nextLine();
System.out.println(" n is " + n + " s1 is " + s1 + " s2 is " + s2);
}
}
如果我的输入是:
2
Hi
Hello
然后,我在屏幕上得到以下输出:
n is 2
s1 is hi
s2 is
为什么会有s1
“ HI”的值?
这是否意味着next()
即使没有读取第一行的转义字符,该方法也会读取下一行nextInt()
?
nextLine()读取当前行的其余部分,即使它为空。
正确。
nextInt()读取一个整数,但不读取转义序列“ \ n”。
正确1。
next()读取当前行,但不读取“ \ n”。
不正确
实际上,该next()
方法读取下一个完整的令牌。那可能不是当前行的其余部分。并且它可能会或可能不会消耗行尾,具体取决于行尾在哪里。确切的行为由javadoc描述,您可能需要自己仔细阅读它才能完全理解细微差别。
因此,在您的示例中:
nextInt()调用使用该2
字符并将位置保留在NL
。
next()调用跳过NL
,消耗H
和i
,并将光标留在第二个NL处。
nextLine()调用消耗第二行的其余部分;即NL
。
1 …除了您的术语错误。读取数据时,它不是转义序列。它是一个行尾序列,取决于平台,可能由CR,NL或CR
NL组成。您正在讨论的转义序列是Java源代码,字符串和字符文字。它们可能>>代表<< CR或NL或其他字符。
我试图了解这三种方法是如何工作的。我是这样理解他们的: 读取当前行的剩余部分,即使该行为空 假设我有以下代码: 如果我的输入是: 然后我在屏幕上得到以下输出: 为什么的值为“HI”? 这是否意味着方法读取下一行,即使第一行的转义字符尚未被读取?
我有两个do-while循环用于进行自定义输入验证。问题是它会自动进入下一个do while循环。正确插入名称后,我必须放置一个新的下一行():name=scanner。nextLine() 我知道当光标停留在那里时,nextLine()会出现“小故障”,您必须调用nextLine()才能继续。资料来源:https://www.geeksforgeeks.org/why-is-scanner-sk
< b >想改进这个问题?更新问题,以便通过编辑此帖子用事实和引用来回答问题。 我知道使用nextInt()方法不会消耗新行字符,所以为了处理这个问题,我需要使用一个空的nextLine()方法继续。 我的问题是,作为一种替代解决方案,程序是否会对任何类型的运行时错误开放以使用两个扫描仪,一个用于字符串输入,一个用于整数? 感谢您的任何帮助! (经过编辑,因此问题不那么主观)
我承认,我已经研究了很多(类似的)问题,但我似乎无法理解我为一个基本的SPOJ问题(http://www.SPOJ.com/problems/onp/)编写的以下代码中的上下文用法(http://www.SPOJ.com/problems/onp/): 如果我使用nextLine()而不是next(),那么SPOJ引擎会生成一个‘错误的答案’响应。 此外,在postfixString函数中使用St
在Java方面,我是一个业余爱好者,所以请原谅我的问题,如果它看起来很愚蠢:-P我有以下代码,旨在计算文件中的行数: 所以它很好,但我想将扫描仪重新用于其他目的,但nextLine已移动到文件的最后一行,我想将其重置回第一行。 (取而代之的是,我不得不使用另一台扫描仪来实现另一个目的,而在我看来,这似乎没有它应有的优雅。) 我肯定肯定有一种扫描仪方法可以将计数器重置为零? 谢谢 CJ
我是Java新手。我必须从2D数组向终端显示int系数。我想在同一行中为同一卖家提供每个值。有一个换行符(由于扫描仪?)。我一直在寻找分隔符system.in但我不明白如何使用它,如果这是合适的。 请帮帮我好吗?先谢谢你 最终结果: 输入卖家数量5 输入型号4的数量 卖家1 0 3. 2个 0