看板 java 關於我們 聯絡資訊
※ 引述《diabloevagto (wi)》之銘言: : scanner利用貼上的方式輸入多行文字 : 要如何才能正確讀入呢? : 我只要一貼上就會直接執行底下的程式 : 而且只有讀到第一行而已 : 請問要如何修改成程式才可以把全部的文字都吃進去 先問你一個問題 你是要到什麼時候才讓程式繼續執行下去? 十行?五十行?一百行? 這樣一想你就知道除非你自己告訴程式我結束了 不然程式永遠無法知道你已經輸入完畢 那麼有一種方式就是折衷 來一行處理一行 其實 Scanner 的行為比較像是來一個東西處理一個東西 只不過如果你是讀 System.in 又是直接鍵盤輸入資料的話 要到你按下 Enter 換行之後 提供資料給 System.in 的底層系統才會說「我這裡有資料了來讀」 因此看起來就像是一次一行 你可以仔細觀察你的程式的執行 你貼上去之後其實不只會只讀到一行 而是貼上了一行輸入 程式跑完之後會繼續貼上第二行 然後開始執行處理第二行輸入 這樣下去 這就是因為上面說的現象 所以不用在這種小事上面擔心了 你的程式還是很好的在運作著的 :) -- 'Oh, Harry, don't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92
diabloevagto:感謝你的講解,大概有一點頭緒了! 05/27 01:55
diabloevagto:測試用loop一直讀可以,看來只能主動告知輸入結束 05/27 01:59
james732:最簡單的方法是用某個關鍵字告訴程式"使用者輸入完了" 05/27 20:28