作者LPH66 (-858993460)
看板java
標題Re: [問題] 請問使用貼上的方式輸入多行文字
時間Thu May 26 23:43:47 2011
※ 引述《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