介绍
在这个实验中,你将学习如何在 Java 中检查一个字符串是否为小写。我们将探索不同的实现方法,首先是使用 toLowerCase() 和 equalsIgnoreCase() 方法在忽略大小写的情况下比较字符串。
然后,你将学习如何遍历字符串,并使用 Character.isLowerCase() 方法逐个检查每个字符。最后,我们将介绍在执行此检查时如何处理非字母字符。
使用 toLowerCase() 方法比较字符串
在这一步中,你将学习如何在 Java 中比较字符串,同时忽略字母的大小写。当你想检查两个字符串是否相同,而不考虑它们使用的是大写字母还是小写字母时,这是一项常见的任务。
让我们创建一个新的 Java 文件来练习这个操作。
如果 WebIDE 尚未打开,请打开它。
在左侧的文件资源管理器中,确保你位于
~/project目录下。在文件资源管理器的空白处右键单击,选择“新建文件”,并将其命名为
CaseInsensitiveCompare.java。在编辑器中打开
CaseInsensitiveCompare.java文件。将以下代码复制并粘贴到编辑器中:
public class CaseInsensitiveCompare { public static void main(String[] args) { String str1 = "Hello"; String str2 = "hello"; String str3 = "World"; // Comparing strings directly (case-sensitive) boolean areEqualCaseSensitive = str1.equals(str2); System.out.println("Case-sensitive comparison of \"" + str1 + "\" and \"" + str2 + "\": " + areEqualCaseSensitive); // Comparing strings ignoring case boolean areEqualCaseInsensitive = str1.equalsIgnoreCase(str2); System.out.println("Case-insensitive comparison of \"" + str1 + "\" and \"" + str2 + "\": " + areEqualCaseInsensitive); // Comparing str1 and str3 ignoring case boolean areEqualStr1Str3 = str1.equalsIgnoreCase(str3); System.out.println("Case-insensitive comparison of \"" + str1 + "\" and \"" + str3 + "\": " + areEqualStr1Str3); } }在这段代码中:
- 我们声明了三个
String变量:str1、str2和str3。 str1.equals(str2)执行区分大小写的比较。它将返回false,因为 "Hello" 和 "hello" 由于大写的 'H' 而不同。str1.equalsIgnoreCase(str2)执行不区分大小写的比较。它将返回true,因为当忽略大小写时,"Hello" 和 "hello" 是相同的。- 我们还对
str1和str3进行了不区分大小写的比较,以表明不同的单词仍然被视为不同。
- 我们声明了三个
保存文件(Ctrl+S 或 Cmd+S)。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。使用
javac命令编译 Java 程序:javac CaseInsensitiveCompare.java如果没有错误,你将看不到任何输出。
~/project目录下将创建一个CaseInsensitiveCompare.class文件。使用
java命令运行编译后的 Java 程序:java CaseInsensitiveCompare你应该会看到以下输出:
Case-sensitive comparison of "Hello" and "hello": false Case-insensitive comparison of "Hello" and "hello": true Case-insensitive comparison of "Hello" and "World": false此输出证实了
equals()方法区分大小写,而equalsIgnoreCase()方法忽略大小写。
使用 equalsIgnoreCase() 是一种方便的比较字符串的方法,无需担心字母是大写还是小写。
在循环中使用 Character.isLowerCase() 方法
在上一步中,我们学习了如何在忽略大小写的情况下比较整个字符串。有时,你可能需要检查字符串中的单个字符,判断它们是小写还是大写。Java 的 Character 类为此提供了有用的方法。
在这一步中,我们将在循环中使用 Character.isLowerCase() 方法来统计字符串中小写字母的数量。
如果 WebIDE 尚未打开,请打开它。
在左侧的文件资源管理器中,确保你位于
~/project目录下。在
~/project目录下创建一个名为CountLowercase.java的新文件。在编辑器中打开
CountLowercase.java文件。将以下代码复制并粘贴到编辑器中:
public class CountLowercase { public static void main(String[] args) { String text = "Hello World 123!"; int lowercaseCount = 0; // Loop through each character in the string for (int i = 0; i < text.length(); i++) { char character = text.charAt(i); // Get the character at the current index // Check if the character is a lowercase letter if (Character.isLowerCase(character)) { lowercaseCount++; // Increment the counter if it's lowercase } } System.out.println("The string is: \"" + text + "\""); System.out.println("Number of lowercase letters: " + lowercaseCount); } }让我们来分析一下这段代码:
- 我们有一个
String类型的变量text,其中包含大写字母、小写字母、数字和符号的组合。 - 我们将整数变量
lowercaseCount初始化为 0。这个变量将用于存储小写字母的数量。 - 我们使用一个
for循环来遍历字符串中的每个字符。循环从索引 0 开始,直到(但不包括)字符串的长度。 text.charAt(i)用于获取当前索引i处的字符。Character.isLowerCase(character)是一个方法,如果给定的character是小写字母,则返回true,否则返回false。- 如果
Character.isLowerCase()返回true,我们就将lowercaseCount加 1。 - 最后,我们打印原始字符串和小写字母的总数。
- 我们有一个
保存文件(Ctrl+S 或 Cmd+S)。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。编译 Java 程序:
javac CountLowercase.java如果编译成功,将创建一个
CountLowercase.class文件。运行编译后的 Java 程序:
java CountLowercase你应该会看到以下输出:
The string is: "Hello World 123!" Number of lowercase letters: 8输出显示,字符串 "Hello World 123!" 中有 8 个小写字母('e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd')。
在循环中使用 Character.isLowerCase() 可以让你对字符串进行逐个字符的分析,这在各种文本处理任务中非常有用。
忽略非字母字符
在上一步中,我们统计了小写字母的数量。然而,字符串可以包含各种字符,如数字、空格和符号。在比较字符串或分析其内容时,你通常希望忽略这些非字母字符。
在这一步中,我们将修改程序,使其仅处理字母字符,而忽略其他所有内容。为此,我们将使用 Character.isLetter() 方法。
如果 WebIDE 尚未打开,请打开它。
打开你在上一步中创建的
CountLowercase.java文件。修改代码,在检查字符是否为小写字母之前,先检查该字符是否为字母。将现有代码替换为以下内容:
public class CountLowercase { public static void main(String[] args) { String text = "Hello World 123!"; int lowercaseCount = 0; StringBuilder lettersOnly = new StringBuilder(); // To store only letter characters // Loop through each character in the string for (int i = 0; i < text.length(); i++) { char character = text.charAt(i); // Get the character at the current index // Check if the character is a letter if (Character.isLetter(character)) { lettersOnly.append(character); // Add the letter to our new string // Check if the letter is lowercase if (Character.isLowerCase(character)) { lowercaseCount++; // Increment the counter if it's lowercase } } } System.out.println("The original string is: \"" + text + "\""); System.out.println("Letters only string: \"" + lettersOnly.toString() + "\""); System.out.println("Number of lowercase letters (ignoring non-letters): " + lowercaseCount); } }以下是我们添加和修改的内容:
- 我们引入了一个名为
lettersOnly的StringBuilder。StringBuilder用于高效地构建字符串,特别是在循环中添加字符时。 - 在循环内部,我们添加了一个
if (Character.isLetter(character))条件。这用于检查当前character是否为字母(大写或小写)。 - 如果字符是字母,我们使用
lettersOnly.append(character)将其追加到lettersOnlyStringBuilder中。 - 现在,
Character.isLowerCase(character)检查嵌套在Character.isLetter()检查内部,确保我们只统计实际为字母的字符中的小写字母。 - 最后,我们打印原始字符串、仅包含字母的字符串,以及这些字母中小写字母的数量。
- 我们引入了一个名为
保存文件(Ctrl+S 或 Cmd+S)。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。编译修改后的 Java 程序:
javac CountLowercase.java确保没有编译错误。
运行编译后的 Java 程序:
java CountLowercase你应该会看到以下输出:
The original string is: "Hello World 123!" Letters only string: "HelloWorld" Number of lowercase letters (ignoring non-letters): 8注意,“Letters only string”现在仅包含“HelloWorld”,并且小写字母的数量仍然是 8,因为我们只统计实际字母中的小写字母。
当你需要在进一步处理字符串之前过滤掉非字母字符时,使用 Character.isLetter() 非常有用。
总结
在本次实验中,我们学习了如何在 Java 中检查字符串是否为小写。我们探讨了两种主要方法。首先,我们使用 equalsIgnoreCase() 方法进行字符串比较,以实现不区分大小写的比较,展示了如何检查两个字符串是否相同,而不考虑字母的大小写。
其次,虽然没有提供完整的细节,但这些步骤表明,我们将学习如何使用循环遍历字符串,并利用 Character.isLowerCase() 方法检查单个字符是否为小写,同时还会考虑在这个过程中如何忽略非字母字符。



