假设我有以下文件
Hej Hej Hej
A A A A
Run Code Online (Sandbox Code Playgroud)
与A的线后的换行符.
我的问题是代码
while (in.hasNextLine()) {
String line = in.nextLine();
if (in.hasNextLine()) {
out.println(line);
}
else {
out.print(line);
}
}
Run Code Online (Sandbox Code Playgroud)
没有检测到这个额外的行in.hasNextLine(),所以我错过了输出文件中的换行符(我正在做一个文件串联程序).问题是什么?
你调用.hasNextLine()两次,而你只读了一次"下一行".
你的代码应该是:
while (in.hasNextLine()) {
String line = in.nextLine();
out.println(line);
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你想再次在循环中检查下一行是否存在,你应该这样做(我发现它不够干净,因为它与上面的代码片段完全相同):
while (in.hasNextLine()) {
String line = in.nextLine();
if (in.hasNextLine()) {
String nextLine = in.nextLine();
out.println(line);
} else {
out.print(line);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |