我會做這與nextLine()
功能和StringTokenizer
對象,具有一個ArrayList<Integer[]>
沿着存儲文本的行:
Scanner sc = new Scanner(/*input source*/);
StringTokenizer input;
ArrayList<Integer[]> numbers = new ArrayList<>();
try {
while (sc.hasNextLine()) {
input = new StringTokenizer(sc.nextLine());
Integer[] n = new Integer[input.countTokens()];
for (int i=0; i<n.length; i++) {
n[x] = new Integer(input.nextToken());
}
numbers.add(n);
}
} catch (NumberFormatException ex) {
// do whatever you want here to handle non-integer input
}
這將每個單獨的線轉換成一個單獨的Integer
陣列,每個陣列都存儲在ArrayList
中。或者,您可以使用ArrayList<String>
並解析代碼中其他位置的整數值。
另外,關於while (sc.hasNextLine())
零件的註釋,如果您的Scanner
正在從System.in
讀取,則不應使用此註釋,因爲這會導致無限循環。如果您的Scanner
正在從System.in
讀取,您應該a)讓用戶輸入一個特定命令來終止循環,或者b)使用for
循環,以便輸入固定數量的輸入線。
你的意思是隻讀直到整數? –