我会做这与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
循环,以便输入固定数量的输入线。
你的意思是只读直到整数? –