实现不区分大小写的子字符串检查
在前面的步骤中,你使用了 contains()
和 indexOf()
方法来搜索子字符串。然而,这些方法是区分大小写的。这意味着 "Java" 会被视为与 "java" 或 "JAVA" 不同。在许多情况下,你可能希望进行不区分大小写的搜索。
Java 的 String
类没有像 containsIgnoreCase()
或 indexOfIgnoreCase()
这样的内置方法。不过,你可以在搜索之前将原始字符串和子字符串都转换为相同的大小写(小写或大写),从而实现不区分大小写的搜索。最常见的做法是使用 toLowerCase()
方法将两者都转换为小写。
让我们再次修改 StringContains.java
文件,以进行不区分大小写的搜索。
-
在 WebIDE 编辑器中打开 StringContains.java
文件。
-
将文件的全部内容替换为以下代码:
public class StringContains {
public static void main(String[] args) {
String sentence = "Java programming is fun and powerful.";
String keyword = "JAVA"; // Using uppercase for demonstration
// Convert both strings to lowercase for case-insensitive comparison
String lowerSentence = sentence.toLowerCase();
String lowerKeyword = keyword.toLowerCase();
// Use contains() on the lowercase strings
boolean containsKeyword = lowerSentence.contains(lowerKeyword);
System.out.println("Original Sentence: \"" + sentence + "\"");
System.out.println("Original Keyword: \"" + keyword + "\"");
System.out.println("Does the sentence contain the keyword (case-insensitive)? " + containsKeyword);
// You can also use indexOf() in a case-insensitive way
int index = lowerSentence.indexOf(lowerKeyword);
if (index != -1) {
System.out.println("The keyword \"" + keyword + "\" was found at index (case-insensitive): " + index);
} else {
System.out.println("The keyword \"" + keyword + "\" was not found (case-insensitive).");
}
}
}
在这段代码中:
- 我们将
keyword
定义为 "JAVA"(大写)。
- 我们使用
toLowerCase()
方法将原始字符串转换为小写,创建了新的字符串 lowerSentence
和 lowerKeyword
。
- 然后,我们对小写字符串使用
contains()
方法进行不区分大小写的检查。
- 我们还演示了如何通过对小写字符串使用
indexOf()
方法来实现不区分大小写的搜索。
-
保存文件(Ctrl+S 或 Cmd+S)。
-
打开 WebIDE 底部的终端。
-
确保你位于 ~/project
目录下。
-
编译修改后的 Java 程序:
javac StringContains.java
-
运行编译后的 Java 程序:
java StringContains
你应该会看到类似于以下的输出:
Original Sentence: "Java programming is fun and powerful."
Original Keyword: "JAVA"
Does the sentence contain the keyword (case-insensitive)? true
The keyword "JAVA" was found at index (case-insensitive): 0
这个输出表明,即使原始关键词是 "JAVA"(大写),不区分大小写的搜索也能正确地在句子中找到它,并报告其索引(在小写的 "Java" 中索引为 0)。
通过在搜索前将字符串转换为一致的大小写,你可以轻松地在 Java 中进行不区分大小写的子字符串检查。