java从键盘中按行输入二维数组的全部元素 提示:考虑String的split方法

java从键盘中按行输入二维数组的全部元素,每行的原素个数不定(用空格进行分割不同原素),当输入空行时表示输入结束。然后打印整个二维数组(元素之间以1个空格分开)。提示:考虑String的split方法

public static void main(String[] args) {
        List<String[]> inputList = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        // 逐行输入二维数组的元素
        String line;
        while (!(line = scanner.nextLine()).isEmpty()) {
            String[] elements = line.split(" ");
            inputList.add(elements);
        }

        // 构建二维数组
        String[][] array = new String[inputList.size()][];
        for (int i = 0; i < inputList.size(); i++) {
            array[i] = inputList.get(i);
        }

        // 打印整个二维数组
        for (String[] row : array) {
            for (String element : row) {
                System.out.print(element + " ");
            }
            System.out.println();
        }
    }

【以下回答由 GPT 生成】

问题

问题标题: Java如何从键盘按行输入二维数组的全部元素?

问题内容:

我想实现一个Java程序,在键盘上按行输入二维数组的全部元素。每行的元素个数是不确定的,用空格进行分割不同的元素。当输入空行时表示输入结束。然后我希望打印整个二维数组,每个元素之间以1个空格分开。

如何实现这个功能?可以考虑使用String的split方法。

问题标签: 算法

请你优化一下以上问题的表述,添加必要的prompt。

回答

你可以使用以下方法来从键盘按行输入二维数组的全部元素,并打印整个二维数组。下面是一个示例代码,你可以根据自己的需要进行修改和优化。

  1. 首先导入所需的类。
import java.util.ArrayList;
import java.util.Scanner;
  1. 创建一个Scanner对象来读取键盘输入。
Scanner scanner = new Scanner(System.in);
  1. 创建一个ArrayList来存储输入的每一行。
ArrayList<String> lines = new ArrayList<>();
  1. 使用循环来读取每一行的输入,直到遇到空行为止。
String line = scanner.nextLine();
while (!line.isEmpty()) {
    lines.add(line);
    line = scanner.nextLine();
}
  1. 创建一个二维数组来存储输入的元素。
int numRows = lines.size();
int[][] array = new int[numRows][];
  1. 使用split方法和循环来处理每一行的输入,并将结果存储到二维数组中。
for (int i = 0; i < numRows; i++) {
    String[] elements = lines.get(i).split(" ");
    int numElements = elements.length;
    array[i] = new int[numElements];
    for (int j = 0; j < numElements; j++) {
        array[i][j] = Integer.parseInt(elements[j]);
    }
}
  1. 打印整个二维数组。
for (int i = 0; i < numRows; i++) {
    int numElements = array[i].length;
    for (int j = 0; j < numElements; j++) {
        System.out.print(array[i][j] + " ");
    }
    System.out.println();
}

完整的示例代码如下:

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<String> lines = new ArrayList<>();
        String line = scanner.nextLine();
        while (!line.isEmpty()) {
            lines.add(line);
            line = scanner.nextLine();
        }
        int numRows = lines.size();
        int[][] array = new int[numRows][];
        for (int i = 0; i < numRows; i++) {
            String[] elements = lines.get(i).split(" ");
            int numElements = elements.length;
            array[i] = new int[numElements];
            for (int j = 0; j < numElements; j++) {
                array[i][j] = Integer.parseInt(elements[j]);
            }
        }
        for (int i = 0; i < numRows; i++) {
            int numElements = array[i].length;
            for (int j = 0; j < numElements; j++) {
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
    }
}

使用上述方法,你可以从键盘按行输入二维数组的全部元素,并打印整个二维数组。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^