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條經驗 獲得超5個贊
在從 bufferedReader 中放入任何數據之前,您首先調用了line變量。第一個while循環將“END”與“”進行比較,因此,顯然是錯誤的。
添加回答
舉報