【问题标题】:Why does scanner work to create an array?为什么扫描仪可以创建阵列?
【发布时间】:2021-10-13 10:03:16
【问题描述】:

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

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

【问题讨论】:

  • 有点不清楚你在说什么尺寸。
  • 数组的大小。
  • "为什么我可以在未设置大小的情况下使用扫描仪创建数组" - 这不是 Scanner 在这里做的。其实就是在nextLine()返回的String上调用split()方法,返回数组。您不必指定大小,因为split() 方法正在返回数组为您,因此您不需要自己创建任何数组(包括不必担心它的大小可能有)
  • 谢谢,现在更有意义了!
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: java arrays java.util.scanner


【解决方案1】:

在这个方法中可以找到答案:.split(" ");

来自the documentation
拆分
public String[] split(String regex)
围绕给定正则表达式的匹配项拆分此字符串。
[...]
回报:
通过围绕给定正则表达式的匹配拆分此字符串计算的字符串数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 2017-12-23
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多