我下面有一个以下方法,该方法接收N行的Scanner对象,每行有一个单词字符串。
public static void longestName(Scanner console, int n) {
for (int i = 1; i <= n; i++) {
System.out.println("name #" + i + "?" + " " + console.nextLine());
}
}
而不是这个(预期的输出)...
name #1? roy
name #2? DANE
name #3? Erik
name #4? sTeFaNiE
name #5? LaurA
...我得到了
roy
name #1? roy
DANE
name #2? DANE
Erik
name #3? Erik
sTeFaNiE
name #4? sTeFaNiE
LaurA
name #5? LaurA
为什么在实际打印命令输出之前先打印一次Scanner对象的“ nextLine()”?
******这是我正在使用的一个实践问题,他们只要求我定义一个方法“ longestName”,该方法采用Scanner对象,而整数“ n”表示Scanner对象中名称的数量
上面的输出是该方法与名称为“ n”个数目的Scanner对象一起使用的结果。
答案 0 :(得分:1)
它不会多次打印,而是您自己在控制台中键入的文本。如您所见,您输入Erik
,然后,它将处理您的打印语句并打印name #3? Erik
,其中Erik
是您输入的文本。
答案 1 :(得分:1)
这将为您提供预期的输出:
System.out.println("name #" + i + "?" + " ");
console.nextLine();