我试图了解这三种方法是如何工作的。我是这样理解他们的:
nextLine()
读取当前行的剩余部分,即使该行为空
假设我有以下代码:
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()
读取?
如果你的输入是2 Hello hi
nextInt()-只需将下一个标记读取为int(这里-它是2
),否则会给出错误
next()-只需读取下一个标记(这里是hello
)
nextline()-它读取一行直到得到换行符(此处-在读取nextline输入的上一个2 hello
之后,下一个;nextline读取hi
,仅因为在此之后它找到了一个换行符)
如果输入是
2
Hi
Hello
nextInt,next与上述讨论相同。
在nextline()中,它在完成next()读取的输入后查找换行符。因此,nextline()停止读取输入以获取换行符。
nextLine()读取当前行的其余部分,即使该行为空。
正确。
nextInt()读取整数,但不读取转义序列“\n”。
更正1。
Next()读取当前行,但不读取\n。
不正确。实际上,Next()
方法读取下一个完整的令牌。这可能是也可能不是当前行的其余部分。它可能会,也可能不会使用行尾,这取决于行尾在哪里。javadoc描述了精确的行为,你可能需要自己仔细阅读,以便你能完全理解细微差别。
所以,在你的例子中:
>
nextInt()调用使用2
字符,并将位置留在NL
。
next()调用跳过NL
,使用H
和i
,并将光标留在第二个NL。
nextLine()调用将使用第2行的其余部分;i、 e.NL
。
1。。。除了你的术语是错误的。当数据被读取时,它不是一个转义序列。这是一个行结束序列,可能由CR、NL或CR NL组成,具体取决于平台。您正在讨论的转义序列是Java源代码中的字符串和字符文本。他们可能
问题内容: 我试图了解这三种方法是如何工作的。这是我对它们的理解: 读取当前行的其余部分,即使它为空。 读取一个整数,但不读取转义序列“ \ n”。 读取当前行,但不读取“ \ n”。 假设我有以下代码: 如果我的输入是: 然后,我在屏幕上得到以下输出: 为什么会有“ HI”的值? 这是否意味着即使没有读取第一行的转义字符,该方法也会读取下一行? 问题答案: nextLine()读取当前行的其余部
我有两个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