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

在Java中,如何以几行而不是一行初始化数组中的元素?,java,arrays,input,initialization,Java,Arrays,Input,Initialization,你好,这是一个非常简单的问题,但我不知道答案。 我只想知道如何在几行中初始化数组的每个元素,因为我知道如何在一行中初始化 我在一行中初始化它们的代码如下: String input = scanner.nextLine(); String[] array = input.split("\\s+"); 使用ArrayList String s = "Too Many\nLines Here\nNo its only three"; Scanner scanner = new Scanner(

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

我在一行中初始化它们的代码如下:

String input = scanner.nextLine();

String[] array = input.split("\\s+");
使用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   

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

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;
}

您期望的最终结果是1D数组、2D数组还是其他?因为有多行,您应该首先输入多少行。然后迭代->获取输入->拆分->将其附加到数组中。这可能是解决方案。@TimBiegeleisen我的预期结果是1D数组。@ruhul好的,所以不输入它们应该有多少行是不可能的。虽然这不是问题的一部分,但我认为在这种情况下使用Arraylist会更好。它将动态分配内存,因为您不知道可能有多少行