标准输入的二维数组,不知道列大小

时间:2015-10-11 17:01:51

标签: java multidimensional-array

如何从标准输入打印二维数组,我知道行大小,而不是列大小?

标准输入的第一行将是行大小,接下来的几行将是具有由空格分隔的列的每个元素的输入的行数。 e.g。

3
1 2 3
3 4 5
6 9 3

这就是我正在尝试使用我的代码

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int rows = sc.nextInt(); // Number of rows
        int[][] arr = new int[rows][];
        for(int i = 0; i < rows; i++){

        }
}

4 个答案:

答案 0 :(得分:2)

如果您想拥有列值, 那么你需要拆分每一行。 拆分线条时,您将知道列数。 例如:

lineToIntArray

private int[] lineToIntArray(String line) { return Arrays.asList(line.split(" ")).stream().mapToInt(Integer::parseInt).toArray(); } 使用Java 8:

std::cout << add(firstNumber, secondNumber);

答案 1 :(得分:0)

String line = sc.nextLine();
String values[] = line.split(" ");
// Now each item of values contains an item of the line, convert it to the type you want and store in your two dimensional array, line by line
// the row count will be values.length 

答案 2 :(得分:0)

忽略第一行。

lines.stream().map(Arrays::toString).forEach(System.out::println);

要打印:

c= 10
for i in range(1,10,1):
   for j in range(1,10,1):
       pass

答案 3 :(得分:0)

假设所有行都以1 input的形式读入String,这应该可行..

Stream.of(input.split("\n")).map(line -> line.split(" ")).toArray(String[][]::new)