如何在 Java 中检查字符是否为大写字母

JavaJavaBeginner
立即练习

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

简介

在这个实验中,你将学习如何在 Java 中检查一个字符是否为大写字母。我们将探讨 Character.isUpperCase() 方法,这是 Character 类为此提供的一个便捷工具。

通过实际操作的示例,你将了解如何对各种字符(包括大写字母、小写字母和非字母字符)使用 Character.isUpperCase() 方法,从而理解其工作原理,并在你的 Java 程序中有效地判断给定字符是否为大写字母。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} java/booleans -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} java/if_else -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} java/for_loop -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} java/strings -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} java/string_methods -.-> lab-559938{{"如何在 Java 中检查字符是否为大写字母"}} end

使用 Character.isUpperCase() 方法

在这一步中,我们将探讨如何在 Java 中使用 Character.isUpperCase() 方法来判断一个字符是否为大写字母。该方法是 Character 类的一部分,这个类提供了许多处理单个字符的实用方法。

Character.isUpperCase() 方法是一个静态方法,这意味着你可以直接在 Character 类上调用它,而无需创建该类的对象。它接受一个字符作为参数,如果该字符是大写字母,则返回 true,否则返回 false

让我们创建一个简单的 Java 程序来演示如何使用这个方法。

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

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

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = 'A';
            char char2 = 'b';
            char char3 = '7';
    
            boolean isUpper1 = Character.isUpperCase(char1);
            boolean isUpper2 = Character.isUpperCase(char2);
            boolean isUpper3 = Character.isUpperCase(char3);
    
            System.out.println("Is '" + char1 + "' uppercase? " + isUpper1);
            System.out.println("Is '" + char2 + "' uppercase? " + isUpper2);
            System.out.println("Is '" + char3 + "' uppercase? " + isUpper3);
        }
    }

    在这段代码中:

    • 我们声明了三个 char 变量:char1char2char3,并为它们赋予不同的字符。
    • 我们使用 Character.isUpperCase() 方法检查每个字符是否为大写字母,并将结果存储在布尔型变量(isUpper1isUpper2isUpper3)中。
    • 最后,我们将结果打印到控制台。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译程序:

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

    java HelloJava

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

    Is 'A' uppercase? true
    Is 'b' uppercase? false
    Is '7' uppercase? false

这个输出证实了 Character.isUpperCase() 方法正确地识别出 'A' 是大写字母,而 'b' 和 '7' 不是大写字母。

对大小写混合的字符进行测试

在上一步中,我们对单个字符使用了 Character.isUpperCase() 方法。现在,让我们看看如何将此方法应用于包含大写和小写字符混合的字符串。这将帮助我们理解如何遍历字符串并检查每个字符的大小写。

在 Java 中,字符串是一系列字符的序列。我们可以使用 charAt() 方法访问字符串中的单个字符,该方法接受一个索引(位置)作为参数。第一个字符的索引从 0 开始。

让我们修改我们的程序,以检查字符串中字符的大小写。

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

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

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
    
            System.out.println("Checking characters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
                boolean isUpper = Character.isUpperCase(currentChar);
                System.out.println("Character '" + currentChar + "' at index " + i + " is uppercase? " + isUpper);
            }
        }
    }

    在这个更新后的代码中:

    • 我们定义了一个 String 类型的变量 testString,其中包含大写字母、小写字母、空格和数字的混合。
    • 我们使用一个 for 循环来遍历字符串中的每个字符。循环从索引 0 开始,直到(但不包括)字符串的长度。
    • 在循环内部,testString.charAt(i) 获取当前索引 i 处的字符。
    • 然后,我们使用 Character.isUpperCase() 方法检查 currentChar 是否为大写字母。
    • 最后,我们打印出字符、其索引以及大写检查的结果。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译程序:

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

    java HelloJava

    你应该会看到类似以下的输出,显示字符串中每个字符的检查结果:

    Checking characters in the string: "Hello Java 123"
    Character 'H' at index 0 is uppercase? true
    Character 'e' at index 1 is uppercase? false
    Character 'l' at index 2 is uppercase? false
    Character 'l' at index 3 is uppercase? false
    Character 'o' at index 4 is uppercase? false
    Character ' ' at index 5 is uppercase? false
    Character 'J' at index 6 is uppercase? true
    Character 'a' at index 7 is uppercase? false
    Character 'v' at index 8 is uppercase? false
    Character 'a' at index 9 is uppercase? false
    Character ' ' at index 10 is uppercase? false
    Character '1' at index 11 is uppercase? false
    Character '2' at index 12 is uppercase? false
    Character '3' at index 13 is uppercase? false

这展示了将 Character.isUpperCase() 方法应用于从字符串中提取的字符时的工作方式,它能正确识别 'H' 和 'J' 为大写字母。

忽略非字母字符

在上一步中,我们看到 Character.isUpperCase() 方法对于非字母字符(如空格和数字)会返回 false。通常,在分析文本时,我们只关注字母,而希望忽略其他字符。

Character 类提供了另一个有用的方法 Character.isLetter(),如果一个字符是字母(大写或小写),则返回 true,否则返回 false。我们可以将 Character.isLetter()Character.isUpperCase() 结合起来,以检查一个字符是否为大写字母,同时忽略非字母字符。

让我们修改程序,来统计字符串中大写字母的数量,忽略空格、数字和其他非字母字符。

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

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

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
            int uppercaseCount = 0;
    
            System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
    
                // Check if the character is a letter AND if it is uppercase
                if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
                    uppercaseCount++;
                    System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
                }
            }
    
            System.out.println("Total uppercase letters found: " + uppercaseCount);
        }
    }

    在这段代码中:

    • 我们将整数变量 uppercaseCount 初始化为 0。
    • 在循环内部,我们添加了一个 if 条件:if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar))&& 运算符表示“且”。只有当 Character.isLetter(currentChar)Character.isUpperCase(currentChar) 都为 true 时,这个条件才为 true
    • 如果条件为 true,我们就将 uppercaseCount 加 1,并打印一条消息,表明找到了一个大写字母。
    • 循环结束后,我们打印出大写字母的总数。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 在终端中编译程序:

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

    java HelloJava

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

    Counting uppercase letters in the string: "Hello Java 123"
    Found uppercase letter: 'H' at index 0
    Found uppercase letter: 'J' at index 6
    Total uppercase letters found: 2

这个输出表明,我们的程序正确地识别并仅统计了大写字母('H' 和 'J'),忽略了小写字母、空格和数字。

总结

在本次实验中,我们学习了如何在 Java 中使用静态方法 Character.isUpperCase() 来检查一个字符是否为大写字母。该方法接受一个字符作为输入,并返回一个布尔值,用于表示该字符是否为大写字母。我们通过一个简单的 Java 程序演示了它的用法,使用大写字母、小写字母和非字母字符进行测试,以观察返回的布尔结果。