为什么nextLine()返回一个空字符串?
这可能是最简单的事情之一,但我看不到自己在做错什么。
我的输入包括一个带有数字的第一行(要读取的行数),一串包含数据的行和最后一行仅包含\ n的行。我应该处理此输入,并在最后一行之后做一些工作。
我有这个输入:
5test1
test2
test3
test4
test5
/*this is a \n*/
对于读取输入,我有以下代码。
int numberRegisters;String line;
Scanner readInput = new Scanner(System.in);
numberRegisters = readInput.nextInt();
while (!(line = readInput.nextLine()).isEmpty()) {
System.out.println(line + "<");
}
我的问题是为什么我什么都不打印?程序读取第一行,然后不执行任何操作。
回答:
nextInt
不读取以下换行符,因此第一个nextLine
(返回 当前
行的其余部分)将始终返回空字符串。
这应该工作:
numberRegisters = readInput.nextInt();readInput.nextLine();
while (!(line = readInput.nextLine()).isEmpty()) {
System.out.println(line + "<");
}
但是我的建议不要nextLine
与nextInt
/ nextDouble
/
next
/等混合使用,因为任何试图维护该代码(包括您自己在内)的人都可能不会意识到或忘记了上述内容,因此上述代码可能会使您感到困惑。
所以我建议:
numberRegisters = Integer.parseInt(readInput.nextLine());while (!(line = readInput.nextLine()).isEmpty()) {
System.out.println(line + "<");
}
以上是 为什么nextLine()返回一个空字符串? 的全部内容, 来源链接: utcz.com/qa/403606.html