我有一個關於Scanner
及其從System.in
輸入的方式的具體問題。Java多行掃描儀輸入
我想要做什麼:我需要讀取從System.in
給出的單個輸入。問題是這個輸入可能有多行(輸入可能有多個\n
字符)。
我的嘗試:
我嘗試的明顯的一點就是Scanner.nextLine()
方法,但ofcourse,這不會讀取所有數據。我想接下來的事情是這樣的:
Scanner sc = new Scanner(System.in);
List<String> data = new ArrayList<>();
while(sc.hasNextLine()){
String line = sc.nextLine();
if(line.isEmpty()){
break;
}
data.add(line);
}
但是,這也將跳過大量的數據 - 例如,當在給定的文本中間的空行。
我也嘗試刪除break;
聲明,並希望while(sc.hasNextLine())
循環會自行破壞,但這絕不會發生,因爲掃描器將等待數據。
這可以在Java中完成嗎?感謝您的時間
循環_will_自行破裂。你只需要給它一個行尾的字符。 – Sweeper
也許這是一個解決方案? https://stackoverflow.com/a/42429171/3959856 –