3 回答
TA贡献1826条经验 获得超6个赞
不太确定你认为你遇到了什么麻烦
但是如果我在输入时运行你的代码
test
String from keyboard not working : test
End
String from keyboard not working : End
kkk
String from keyboard in while loop : kkk
然后如果我输入 ctrl-d 那么第二个循环将终止
即使我按下回车键, enter也不会终止输入,请尝试ctrl-d
TA贡献1858条经验 获得超8个赞
while(!line.equals("End")){
line = br.readLine();
System.out.println("String from keyboard not working : "+line+"\n");
}
这个块工作正常。在此一旦您输入End,它将打印结束一次并终止。打印的原因是在循环的下一个循环中检查条件。
while((line = br.readLine())!=null) {
System.out.println("String from keyboard in while loop : "+line+"\n")
}
此块不会终止,因为每次您按 Enter 时,终端都会发送一个空字符串。因此,如果您希望它在按 Enter 时终止,请将条件更改为
while(!(line = br.readLine()).equals(""))
TA贡献1821条经验 获得超4个赞
在从 bufferedReader 中放入任何数据之前,您首先调用了line变量。第一个while循环将“END”与“”进行比较,因此,显然是错误的。
添加回答
举报