在 Java 中把字符转换为小写

JavaJavaBeginner
立即练习

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

简介

在 Java 编程中,toLowerCase(char ch) 方法用于将给定的字符参数转换为小写。此方法是 Java 中 Character 类的一部分,它使用 Unicode 数据文件提供的大小写映射信息。当处理需要进行大小写规范化的文本时,这个功能特别有用。

在这个实验中,你将学习如何在 Java 程序中使用 toLowerCase(char ch) 方法。你将创建一个简单的应用程序,将字符转换为小写,并通过添加用户输入和错误处理功能来增强它。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/while_loop("While Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/if_else -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/while_loop -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/strings -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/user_input -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/exceptions -.-> lab-117580{{"在 Java 中把字符转换为小写"}} java/string_methods -.-> lab-117580{{"在 Java 中把字符转换为小写"}} end

创建你的第一个字符转换程序

在这一步中,你将创建一个 Java 程序,演示如何使用 Java 的 Character 类中的 toLowerCase(char ch) 方法将字符转换为小写。

理解字符大小写转换

在 Java 中,字符由基本数据类型 char 表示。Character 类提供了各种方法来操作和处理字符,包括在大写和小写之间进行转换的功能。

toLowerCase(char ch) 方法接受一个字符作为输入,并:

  • 如果字符是大写字母,则返回其小写版本
  • 如果字符已经是小写字母或不是字母,则返回相同的字符

创建 Java 文件

首先,让我们在项目目录中创建一个新的 Java 文件:

  1. 打开 WebIDE 编辑器窗口
  2. 导航到“文件”菜单并点击“新建文件”
  3. 将文件命名为 CharacterToLowerCase.java,并将其保存到 /home/labex/project 目录中

或者,你也可以使用终端来创建文件:

cd ~/project
touch CharacterToLowerCase.java

编写你的第一个程序

现在,让我们在 CharacterToLowerCase.java 文件中编写代码:

  1. 在 WebIDE 编辑器中打开该文件
  2. 将以下代码复制并粘贴到文件中:
public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create character variables with different cases
        char upperCaseChar = 'A';
        char lowerCaseChar = 'b';
        char nonLetterChar = '5';

        // Convert each character to lowercase
        char result1 = Character.toLowerCase(upperCaseChar);
        char result2 = Character.toLowerCase(lowerCaseChar);
        char result3 = Character.toLowerCase(nonLetterChar);

        // Print the original and lowercase characters
        System.out.println("Original uppercase character: " + upperCaseChar);
        System.out.println("After toLowerCase(): " + result1);
        System.out.println();

        System.out.println("Original lowercase character: " + lowerCaseChar);
        System.out.println("After toLowerCase(): " + result2);
        System.out.println();

        System.out.println("Original non-letter character: " + nonLetterChar);
        System.out.println("After toLowerCase(): " + result3);
    }
}

这个程序使用三种不同类型的字符演示了 toLowerCase(char ch) 方法:

  • 一个大写字母 ('A')
  • 一个小写字母 ('b')
  • 一个非字母字符 ('5')

编译并运行程序

现在,让我们编译并运行这个 Java 程序:

  1. 在 WebIDE 中打开终端
  2. 如果你还没有在项目目录中,请导航到该目录:
    cd ~/project
  3. 编译 Java 文件:
    javac CharacterToLowerCase.java
  4. 运行编译后的程序:
    java CharacterToLowerCase

你应该会看到以下输出:

Original uppercase character: A
After toLowerCase(): a

Original lowercase character: b
After toLowerCase(): b

Original non-letter character: 5
After toLowerCase(): 5

如你所见,大写字母 'A' 被转换为小写字母 'a',而已是小写的 'b' 和非字母字符 '5' 则保持不变。

通过用户输入增强程序

在这一步中,你将增强你的程序以接受用户输入。程序将不再使用预定义的字符,而是会提示用户输入一个字符,然后将其转换为小写。

理解 Scanner 类

为了在 Java 中接受用户输入,我们将使用 java.util 包中的 Scanner 类。Scanner 类提供了从各种来源(包括标准输入,即键盘)读取不同类型输入数据(如整数、双精度浮点数、字符串等)的方法。

以下是我们使用 Scanner 类的步骤:

  1. 使用 import java.util.Scanner; 导入该类
  2. 使用 Scanner scanner = new Scanner(System.in); 创建一个 Scanner 对象
  3. 使用 next()nextInt() 等方法读取输入

修改程序

让我们修改程序以接受用户输入:

  1. 在 WebIDE 编辑器中打开 CharacterToLowerCase.java 文件
  2. 将现有代码替换为以下代码:
import java.util.Scanner;

public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create a Scanner object to read user input
        Scanner scanner = new Scanner(System.in);

        // Prompt the user to enter a character
        System.out.print("Enter a character: ");

        // Read the first character of the input
        String input = scanner.next();
        char userChar = input.charAt(0);

        // Convert the character to lowercase
        char lowerCaseChar = Character.toLowerCase(userChar);

        // Print the original and lowercase characters
        System.out.println("Original character: " + userChar);
        System.out.println("Lowercase character: " + lowerCaseChar);

        // Close the scanner
        scanner.close();
    }
}

此代码的主要更改如下:

  • 我们导入了 Scanner
  • 我们创建了一个 Scanner 对象来从控制台读取输入
  • 我们提示用户输入一个字符
  • 我们将输入作为字符串读取,然后提取第一个字符
  • 我们将字符转换为小写,并显示原始字符和小写字符
  • 我们关闭了 Scanner 以释放资源

编译并运行修改后的程序

让我们编译并运行修改后的程序:

  1. 在 WebIDE 中打开终端
  2. 如果你还没有在项目目录中,请导航到该目录:
    cd ~/project
  3. 编译 Java 文件:
    javac CharacterToLowerCase.java
  4. 运行编译后的程序:
    java CharacterToLowerCase
  5. 当提示输入时,输入一个字符(例如,'Z')并按回车键。

你应该会看到类似于以下的输出(假设你输入了 'Z'):

Enter a character: Z
Original character: Z
Lowercase character: z

尝试输入不同的字符,看看程序对小写字母、大写字母和非字母字符的处理方式。

处理错误和无效输入

在上一步中,当用户输入有效字符时,我们的程序运行良好。然而,如果用户输入空字符串,或者在读取输入时出现其他问题,程序可能会因异常而崩溃。在这一步中,我们将增强程序以处理潜在的错误和无效输入。

理解 Java 中的异常处理

Java 中的异常处理是通过 try-catch 块完成的:

  • 可能抛出异常的代码放在 try 块中
  • 处理异常的代码放在 catch 块中
  • 你可以通过指定异常类型来捕获特定的异常

修改程序以处理错误

让我们修改程序以处理潜在的错误:

  1. 在 WebIDE 编辑器中打开 CharacterToLowerCase.java 文件
  2. 将现有代码替换为以下代码:
import java.util.Scanner;

public class CharacterToLowerCase {
    public static void main(String[] args) {
        // Create a Scanner object to read user input
        Scanner scanner = new Scanner(System.in);

        // Continue until valid input is received
        boolean validInput = false;

        while (!validInput) {
            try {
                // Prompt the user to enter a character
                System.out.print("Enter a character: ");

                // Read the first character of the input
                String input = scanner.next();
                if (input.isEmpty()) {
                    System.out.println("Error: Empty input. Please enter a character.");
                    continue;
                }

                char userChar = input.charAt(0);

                // Convert the character to lowercase
                char lowerCaseChar = Character.toLowerCase(userChar);

                // Print the original and lowercase characters
                System.out.println("Original character: " + userChar);
                System.out.println("Lowercase character: " + lowerCaseChar);

                // If a character is already lowercase or is not a letter, explain the result
                if (userChar == lowerCaseChar) {
                    if (Character.isLetter(userChar)) {
                        System.out.println("Note: The character was already lowercase.");
                    } else {
                        System.out.println("Note: The character is not a letter, so it remains unchanged.");
                    }
                }

                validInput = true;  // Exit the loop

            } catch (Exception e) {
                // Handle any exceptions that might occur
                System.out.println("Error: Invalid input. Please try again.");
                scanner.nextLine();  // Clear the input buffer
            }
        }

        // Close the scanner
        scanner.close();
    }
}

此代码的主要更改如下:

  • 我们添加了一个循环,持续提示用户输入,直到接收到有效输入
  • 我们添加了一个 try-catch 块来处理潜在的异常
  • 我们检查输入是否为空
  • 我们添加了关于某些字符为何保持不变的额外信息
  • 我们在输入无效时清空输入缓冲区

编译并运行最终程序

让我们编译并运行增强后的程序:

  1. 在 WebIDE 中打开终端
  2. 如果你还没有在项目目录中,请导航到该目录:
    cd ~/project
  3. 编译 Java 文件:
    javac CharacterToLowerCase.java
  4. 运行编译后的程序:
    java CharacterToLowerCase

让我们测试不同的场景:

  1. 输入一个大写字母(例如,'A'):

    Enter a character: A
    Original character: A
    Lowercase character: a
  2. 输入一个小写字母(例如,'a'):

    Enter a character: a
    Original character: a
    Lowercase character: a
    Note: The character was already lowercase.
  3. 输入一个非字母字符(例如,'5'):

    Enter a character: 5
    Original character: 5
    Lowercase character: 5
    Note: The character is not a letter, so it remains unchanged.
  4. 尝试不输入字符直接按回车键,或者输入无效输入:

    Enter a character:
    Error: Invalid input. Please try again.
    Enter a character:

现在,程序可以优雅地处理各种输入场景,并为用户提供有用的反馈。

总结

在这个实验中,你学习了如何使用 Java 中的 toLowerCase(char ch) 方法将字符转换为小写。以下是你所完成内容的回顾:

  1. 你创建了一个基本的 Java 程序,该程序演示了如何使用 toLowerCase(char ch) 方法进行字符大小写转换。

  2. 你使用 Scanner 类增强了程序,使其能够接受用户输入,允许用户输入自己的字符进行转换。

  3. 你通过添加 try-catch 块进行错误处理,提高了程序的健壮性,从而能够优雅地处理无效输入。

  4. 你添加了信息性消息,解释了某些字符在传递给 toLowerCase(char ch) 方法时为何保持不变。

这些技能是 Java 编程的基础,可以应用于许多实际场景,例如:

  • 文本处理和规范化
  • 表单验证
  • 搜索功能(不区分大小写的搜索)
  • 数据清理和准备

在你继续 Java 学习之旅时,请记住 Character 类提供了许多其他处理字符的有用方法,例如 isLetter()isDigit()isUpperCase()isLowerCase() 等等。