如何在 Java 中检查数组是否具有特定长度

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Java 数组是否具有特定的长度。首先,我们会了解如何使用内置的 length 属性来确定数组的大小。

接着,你将学习如何将数组的长度与预期值进行比较,以验证它是否符合所需的大小。最后,我们将探讨在检查数组长度时如何处理空数组,以避免潜在的错误。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/if_else -.-> lab-560000{{"如何在 Java 中检查数组是否具有特定长度"}} java/arrays -.-> lab-560000{{"如何在 Java 中检查数组是否具有特定长度"}} java/arrays_methods -.-> lab-560000{{"如何在 Java 中检查数组是否具有特定长度"}} java/exceptions -.-> lab-560000{{"如何在 Java 中检查数组是否具有特定长度"}} end

使用 length 属性获取数组大小

在这一步中,你将学习如何使用 length 属性来确定 Java 数组的大小。了解数组的大小对于遍历其元素或执行依赖于元素数量的操作至关重要。

在 Java 中,数组有一个内置的属性 length,它存储了数组可以容纳的元素数量。这个属性是一个常量(final variable),这意味着在数组创建后,其值不能被更改。

让我们创建一个简单的 Java 程序来演示如何使用 length 属性。

  1. 如果 HelloJava.java 文件尚未在 WebIDE 编辑器中打开,请打开它。

  2. 将文件的全部内容替换为以下代码:

    public class HelloJava {
        public static void main(String[] args) {
            // Declare and initialize an integer array
            int[] numbers = {10, 20, 30, 40, 50};
    
            // Get the length of the array using the length property
            int arraySize = numbers.length;
    
            // Print the size of the array
            System.out.println("The size of the array is: " + arraySize);
        }
    }

    让我们来看看这段代码的新部分:

    • int[] numbers = {10, 20, 30, 40, 50};:这行代码声明了一个名为 numbers 的整数数组,并使用五个整数值对其进行初始化。
    • int arraySize = numbers.length;:这是我们使用 length 属性的地方。numbers.length 访问 numbers 数组的大小,并将这个值存储在一个名为 arraySize 的整数变量中。
    • System.out.println("The size of the array is: " + arraySize);:这行代码将 arraySize 变量中存储的值打印到控制台。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 现在,让我们编译修改后的程序。在终端中,通过运行 cd ~/project 确保你位于 ~/project 目录下。然后,运行:

    javac HelloJava.java

    如果编译成功,你将不会看到任何输出。

  5. 最后,让我们运行程序:

    java HelloJava

    你应该会看到以下输出:

    The size of the array is: 5

    这个输出证实了 length 属性正确地返回了我们 numbers 数组中的元素数量。

了解如何获取数组的大小对于许多编程任务至关重要,例如遍历所有元素或为新数组分配内存。

与预期长度进行比较

在这一步中,我们将基于对 length 属性的理解,把数组的实际大小与预期大小进行比较。这在编程中是一项常见任务,特别是在验证输入或确保数据完整性时。

我们可以使用条件语句(如 if 语句)来检查数组的长度是否与特定值匹配。

让我们修改 HelloJava.java 程序,将数组的长度与预期值进行比较。

  1. 在 WebIDE 编辑器中打开 HelloJava.java 文件。

  2. 将当前代码替换为以下内容:

    public class HelloJava {
        public static void main(String[] args) {
            int[] numbers = {10, 20, 30, 40, 50};
            int expectedSize = 5; // We expect the array to have 5 elements
    
            int arraySize = numbers.length;
    
            System.out.println("The size of the array is: " + arraySize);
            System.out.println("The expected size is: " + expectedSize);
    
            // Compare the actual size with the expected size
            if (arraySize == expectedSize) {
                System.out.println("The array size matches the expected size.");
            } else {
                System.out.println("The array size does NOT match the expected size.");
            }
        }
    }

    以下是新增的部分:

    • int expectedSize = 5;:我们声明了一个整数变量 expectedSize,并将其设置为 5,这是我们期望 numbers 数组具有的大小。
    • System.out.println("The expected size is: " + expectedSize);:为了清晰起见,我们打印出预期大小。
    • if (arraySize == expectedSize):这是一个 if 语句,用于检查 arraySize 的值是否等于 expectedSize 的值。== 运算符用于进行比较。
    • System.out.println("The array size matches the expected size.");:如果 if 语句中的条件为真(大小匹配),则执行这一行。
    • else:这个关键字引入了一个代码块,当 if 语句中的条件为假时执行。
    • System.out.println("The array size does NOT match the expected size.");:如果 if 语句中的条件为假(大小不匹配),则执行这一行。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译修改后的程序:

    javac HelloJava.java
  5. 运行编译后的程序:

    java HelloJava

    你应该会看到类似以下的输出:

    The size of the array is: 5
    The expected size is: 5
    The array size matches the expected size.

    这个输出表明我们的程序正确地将数组的实际大小(5)与预期大小(5)进行了比较,并打印出了相应的消息。

你可以尝试更改 expectedSize 的值,或者从 numbers 数组中添加/删除元素,看看输出会如何变化。这个练习有助于你理解条件逻辑如何与数组属性一起工作。

对空数组进行测试

在这最后一步中,你将探究当尝试访问未初始化或为 null 的数组的 length 属性时会发生什么。了解如何处理 null 值对于防止程序出错至关重要。

在 Java 中,已声明但未分配对象引用的变量的默认值为 null。如果你尝试访问 null 对象的属性或方法,Java 会抛出 NullPointerException。这是你在 Java 编程中会遇到的常见运行时错误。

让我们修改程序,看看当尝试访问 null 数组的 length 属性时会发生什么,以及如何妥善处理这种情况。

  1. 在 WebIDE 编辑器中打开 HelloJava.java 文件。

  2. 将当前代码替换为以下内容:

    public class HelloJava {
        public static void main(String[] args) {
            int[] numbers = null; // Declare an array but set it to null
    
            // Attempt to access the length property (this will cause an error)
            // int arraySize = numbers.length; // Commenting this out to prevent error
    
            // How to safely check for null before accessing length
            if (numbers != null) {
                int arraySize = numbers.length;
                System.out.println("The size of the array is: " + arraySize);
            } else {
                System.out.println("The array is null. Cannot get its length.");
            }
        }
    }

    以下是修改内容的详细解释:

    • int[] numbers = null;:我们声明了 numbers 数组,但明确将其值设置为 null。这意味着 numbers 变量当前并不指向内存中的实际数组对象。
    • // int arraySize = numbers.length;:我们注释掉了直接尝试访问 numbers.length 的代码行。如果不进行 if 检查就运行此代码,将会导致 NullPointerException
    • if (numbers != null):这是处理 null 的关键部分。我们使用 if 语句检查 numbers 变量是否 不为 null!= 运算符表示“不等于”。
    • int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize);:只有当 numbers 不为 null 时,才会执行此代码块。在这个代码块中,访问 numbers.length 是安全的。
    • else:如果 if 条件为假,即 numbers null,则执行此代码块。
    • System.out.println("The array is null. Cannot get its length.");:当数组为 null 时,会打印此消息,告知用户无法确定数组的长度。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译修改后的程序:

    javac HelloJava.java
  5. 运行编译后的程序:

    java HelloJava

    你应该会看到以下输出:

    The array is null. Cannot get its length.

    此输出表明我们的程序正确识别出数组为 null,并在不抛出 NullPointerException 的情况下处理了这种情况。

在 Java 编程中,处理 null 值是一项非常重要的技能。在尝试访问对象的属性或方法之前,一定要检查对象引用是否为 null,以避免运行时错误。

总结

在本次实验中,我们学习了如何使用 Java 内置的 length 属性来确定数组的大小。该属性提供了一种简单的方式来获取数组可容纳的元素数量。我们通过创建一个整数数组、访问其 length 属性并打印结果来进行了演示。

后续步骤可能会基于这一基本概念,将数组的大小与预期长度进行比较,并处理可能出现的空数组情况,从而进一步巩固我们对 Java 中数组操作的理解。