为什么扫描仪会创建一个阵列?

Why does scanner work to create an array?

我编写了一个小程序,用于检查字符串是否按用户输入的字母顺序排序,一行中以空格分隔。它可以工作而且很棒,但我不明白的是为什么我可以在未设置大小时使用扫描仪创建数组。任何见解将不胜感激。

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String[] stringArray = scanner.nextLine().split(" ");
        boolean alphabetical = true;

        for (int i = 1; i < stringArray.length; i++) {
            if (stringArray[i].compareTo(stringArray[i - 1]) < 0) {
                alphabetical = false;
                break;
            }
        }

        System.out.print(alphabetical);
    }
}

答案就在这个方法中:.split(" ");.

来自the documentation
分裂
public String[] split(String regex)
围绕给定正则表达式的匹配拆分此字符串。
[...]
Returns:
通过围绕给定正则表达式

的匹配拆分此字符串计算的字符串数组