public static void main(String[] args) { Scanner scan = new Scanner(System.in); try { while (scan.hasNextLine()){ String line = scan.nextLine().toLowerCase(); System.out.println(line); } } finally { scan.close(); } }只是想知道在完成輸入后如何終止程序?由于假設我將繼續輸入內容,因此掃描器在多次“輸入”后仍將繼續運行...我嘗試了:if (scan.nextLine() == null) System.exit(0);和if (scan.nextLine() == "") System.exit(0); 他們沒有用...。程序繼續運行,并與最初的意圖相混淆,
3 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
問題是,除非用戶……以某種方式告訴用戶,否則程序(如您的程序)不知道用戶已完成輸入。
用戶可以通過兩種方式執行此操作:
輸入“文件結束”標記。在UNIX和Mac OS是(典型值)CTRL+ D,和Windows CTRL+ Z。那將導致hasNextLine()返回false。
輸入一些特殊的輸入,程序將其識別為“我完成了”。例如,它可以是空行,也可以是一些特殊值,例如“ exit”。該程序需要對此進行專門測試。
(您也可以想象使用計時器,并假設用戶已經輸入N秒或N分鐘未輸入任何內容,則此操作已經完成。但這不是用戶友好的方法。)
當前版本失敗的原因是您正在==測試一個空字符串。您應該使用equals或isEmpty方法。(請參閱如何比較Java中的字符串?)
其他要考慮的因素是區分大小寫(例如,“退出”與“退出”)以及前導或尾隨空格的影響(例如,“退出”與“退出”)。
添加回答
舉報
0/150
提交
取消