如何在 Java 中检查字符串是否为空

JavaJavaBeginner
立即练习

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

简介

在这个实验中,你将学习如何在 Java 中检查字符串是否为空。我们将探讨三种关键技术:使用 length() 方法验证字符串长度,利用专门的 isEmpty() 方法进行直接检查,并且重要的是,在执行空检查之前处理潜在的空字符串以避免错误。在本实验结束时,你将深入理解如何在 Java 程序中有效判断字符串是否为空。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/strings -.-> lab-559927{{"如何在 Java 中检查字符串是否为空"}} java/string_methods -.-> lab-559927{{"如何在 Java 中检查字符串是否为空"}} end

使用 length() 方法验证字符串长度

在这一步中,我们将探讨如何在 Java 中使用内置的 length() 方法来确定字符串的长度。在任何编程语言中处理文本数据时,理解字符串长度都是一个基本概念。

在 Java 中,String 是一个字符序列。length() 方法是一种简单的方式,用于找出字符串中有多少个字符。这就像计算一个单词中的字母数量或一个句子中的单词数量一样。

让我们创建一个简单的 Java 程序来演示这一点。

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

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

    public class HelloJava {
        public static void main(String[] args) {
            String greeting = "Hello, Java!";
            int length = greeting.length();
            System.out.println("The string is: " + greeting);
            System.out.println("The length of the string is: " + length);
        }
    }

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

    • String greeting = "Hello, Java!";:这一行声明了一个名为 greeting 的变量,并将字符串值 "Hello, Java!" 赋给它。
    • int length = greeting.length();:这是我们使用 length() 方法的地方。我们在 greeting 字符串上调用 length(),它会返回该字符串中的字符数量。这个数字随后被存储在一个名为 length 的整数变量中。
    • System.out.println("The string is: " + greeting);:这一行将原始字符串打印到控制台。
    • System.out.println("The length of the string is: " + length);:这一行打印出计算得到的字符串长度。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 现在,让我们编译我们的程序。打开 WebIDE 底部的终端,并确保你位于 ~/project 目录中。然后,运行以下命令:

    javac HelloJava.java

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

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

    java HelloJava

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

    The string is: Hello, Java!
    The length of the string is: 12

    输出显示了原始字符串及其长度,长度为 12(包括逗号、空格和感叹号)。

你已经成功地使用 length() 方法在 Java 中找出了字符串的长度!在处理文本数据时,这是一项基本但重要的操作。

使用 isEmpty() 方法检查空字符串

在这一步中,你将学习如何在 Java 中使用 isEmpty() 方法检查字符串是否为空。空字符串是指不包含任何字符的字符串,它与包含空格或其他字符的字符串不同。

isEmpty() 方法是一种方便的方式,用于检查字符串的长度是否为零。如果字符串为空,该方法返回 true;否则返回 false

让我们修改 HelloJava.java 程序,以演示 isEmpty() 方法的使用。

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

  2. 将现有代码替换为以下代码:

    public class HelloJava {
        public static void main(String[] args) {
            String str1 = "Hello";
            String str2 = ""; // This is an empty string
            String str3 = " "; // This string contains a space
    
            System.out.println("String 1: \"" + str1 + "\"");
            System.out.println("Is String 1 empty? " + str1.isEmpty());
    
            System.out.println("\nString 2: \"" + str2 + "\"");
            System.out.println("Is String 2 empty? " + str2.isEmpty());
    
            System.out.println("\nString 3: \"" + str3 + "\"");
            System.out.println("Is String 3 empty? " + str3.isEmpty());
        }
    }

    在这段代码中:

    • 我们声明了三个字符串:包含内容的 str1、空字符串 str2 以及包含一个空格的 str3
    • 我们使用 str1.isEmpty()str2.isEmpty()str3.isEmpty() 来检查每个字符串是否为空。
    • System.out.println() 语句将打印出字符串以及 isEmpty() 检查的结果(truefalse)。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

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

    javac HelloJava.java

    同样,没有输出表示编译成功。

  5. 运行程序:

    java HelloJava

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

    String 1: "Hello"
    Is String 1 empty? false
    
    String 2: ""
    Is String 2 empty? true
    
    String 3: " "
    Is String 3 empty? false

    如你所见,isEmpty() 方法正确地将 str2 识别为空字符串(返回 true),而 str1str3 则不为空(返回 false)。这是因为 str3 包含一个空格字符,尽管它看起来可能是空的。

你已经成功使用 isEmpty() 方法检查字符串是否为空。这在验证用户输入或处理文本数据时非常有用,因为你需要处理缺失或为空的字符串情况。

在检查字符串是否为空之前处理 null 字符串

在上一步中,你学习了如何使用 isEmpty() 方法检查字符串是否为空。然而,Java 中有一个重要的概念叫 nullnull 值表示变量不引用任何对象。如果你尝试对一个 null 字符串调用 isEmpty() 这样的方法,程序会抛出 NullPointerException 异常而崩溃。

在尝试对字符串调用任何方法之前,处理 null 字符串至关重要。最安全的做法是先检查字符串是否为 null

让我们修改程序,演示如何处理 null 字符串。

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

  2. 将现有代码替换为以下代码:

    public class HelloJava {
        public static void main(String[] args) {
            String str1 = "Hello";
            String str2 = "";
            String str3 = null; // This string is null
    
            System.out.println("Checking String 1: \"" + str1 + "\"");
            if (str1 != null && !str1.isEmpty()) {
                System.out.println("String 1 is not null and not empty.");
            } else {
                System.out.println("String 1 is null or empty.");
            }
    
            System.out.println("\nChecking String 2: \"" + str2 + "\"");
            if (str2 != null && !str2.isEmpty()) {
                System.out.println("String 2 is not null and not empty.");
            } else {
                System.out.println("String 2 is null or empty.");
            }
    
            System.out.println("\nChecking String 3: " + str3); // Note: printing null doesn't crash
            if (str3 != null && !str3.isEmpty()) {
                System.out.println("String 3 is not null and not empty.");
            } else {
                System.out.println("String 3 is null or empty.");
            }
        }
    }

    在这段代码中:

    • 我们引入了一个 null 字符串 str3
    • 在调用 isEmpty() 之前,我们先使用 str != null 检查字符串是否为 null
    • 我们使用逻辑与运算符 (&&) 来组合 null 检查和 isEmpty() 检查。只有当 str != nulltrue 时,才会计算 !str.isEmpty() 部分,从而避免 NullPointerException
    • if 语句检查字符串是否既不为 null 也不为空。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译程序:

    javac HelloJava.java
  5. 运行程序:

    java HelloJava

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

    Checking String 1: "Hello"
    String 1 is not null and not empty.
    
    Checking String 2: ""
    String 2 is null or empty.
    
    Checking String 3: null
    String 3 is null or empty.

    这个输出表明,我们的代码正确识别出 str1 既不为 null 也不为空,str2str3null 或为空,且程序没有崩溃。

在对字符串调用方法之前检查 null,可以让你的 Java 程序更健壮,避免常见错误。这是 Java 编程中非常重要的实践。

总结

在本次实验中,你学习了如何在 Java 中检查字符串是否为空。首先,你了解了使用 length() 方法来确定字符串中的字符数量,这是处理文本数据的一个基本概念。你编写了一个简单的 Java 程序,演示了如何使用 length() 方法,并将字符串及其长度打印到控制台。

后续你将继续探索其他方法,如 isEmpty(),并学习如何处理空字符串(null strings),以确保在 Java 程序中进行可靠的空值检查。