3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
不太確定你認(rèn)為你遇到了什么麻煩
但是如果我在輸入時(shí)運(yùn)行你的代碼
test
String from keyboard not working : test
End
String from keyboard not working : End
kkk
String from keyboard in while loop : kkk
然后如果我輸入 ctrl-d 那么第二個(gè)循環(huán)將終止
即使我按下回車鍵, enter也不會(huì)終止輸入,請(qǐng)嘗試ctrl-d

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
while(!line.equals("End")){
line = br.readLine();
System.out.println("String from keyboard not working : "+line+"\n");
}
這個(gè)塊工作正常。在此一旦您輸入End,它將打印結(jié)束一次并終止。打印的原因是在循環(huán)的下一個(gè)循環(huán)中檢查條件。
while((line = br.readLine())!=null) {
System.out.println("String from keyboard in while loop : "+line+"\n")
}
此塊不會(huì)終止,因?yàn)槊看文?Enter 時(shí),終端都會(huì)發(fā)送一個(gè)空字符串。因此,如果您希望它在按 Enter 時(shí)終止,請(qǐng)將條件更改為
while(!(line = br.readLine()).equals(""))

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
在從 bufferedReader 中放入任何數(shù)據(jù)之前,您首先調(diào)用了line變量。第一個(gè)while循環(huán)將“END”與“”進(jìn)行比較,因此,顯然是錯(cuò)誤的。
添加回答
舉報(bào)