来自 Scanner 对象的输入行在正式打印命令之前打印
Input line from Scanner object gets printed before official print command
我有一个下面的方法,它接收一个包含 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"扫描仪对象中的名称。
上面的输出是该方法与具有 "n" 个名称的 Scanner 对象一起使用的结果。
不是打印多次,是你自己在控制台输入的文字。如您所见,您输入 Erik
,只有在那之后它才会处理您的打印语句并打印 name #3? Erik
,其中 Erik
是您输入的文本。
这将为您提供预期的输出:
System.out.println("name #" + i + "?" + " ");
console.nextLine();
我有一个下面的方法,它接收一个包含 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"扫描仪对象中的名称。
上面的输出是该方法与具有 "n" 个名称的 Scanner 对象一起使用的结果。
不是打印多次,是你自己在控制台输入的文字。如您所见,您输入 Erik
,只有在那之后它才会处理您的打印语句并打印 name #3? Erik
,其中 Erik
是您输入的文本。
这将为您提供预期的输出:
System.out.println("name #" + i + "?" + " ");
console.nextLine();