在Java中,如何在几行中而不是一行中初始化数组中的元素?

时间:2019-05-30 04:25:36

标签: java arrays input initialization

您好,这是一个非常简单的问题,但我不知道答案。 我只想知道如何在几行中初始化数组的每个元素,因为我知道如何在一行中完成它。

我将它们初始化为一行的代码是这样的:

String input = scanner.nextLine();

String[] array = input.split("\\s+");

2 个答案:

答案 0 :(得分:1)

使用ArrayList

String s = "Too Many\nLines Here\nNo its only three"; 
Scanner scanner = new Scanner(s); 
List<String> array = new ArrayList<>(Arrays.asList(scanner.nextLine().split("\\s+")));
//to add next line
array.addAll(Arrays.asList(scanner.nextLine().split("\\s+")));
//.. and so on   

答案 1 :(得分:0)

在Java中,数组必须具有固定的大小,并且一旦声明就不能更改。关于您的问题,您可以创建一个大小大于预期的数组。因为您不知道它将循环多少次,所以可以使while循环和一个标记停止输入(“退出”或“停止”或其他特殊用户无法输入的内容...)。例如:

String[] arr = new String[1000];
Scanner scanner = new Scanner(System.in);
int counter = 0;

while (true) {
    String input = scanner.nextLine();
    if ("stop".equalsIgnoreCase(input)) {
        break;
    }
    arr[counter++] = input;
}