java如何准确判断字符串中是否包含特定字符或子串?
- 后端开发
- 2025-10-28
- 6
在Java中,判断字符串中是否含有特定的字符或子字符串是一个常见的操作,以下是一些常用的方法来判断字符串中是否包含特定的内容。
使用 contains 方法
String 类中有一个 contains 方法,可以用来检查字符串中是否包含另一个字符串。
| 方法名 | 返回值 | 说明 |
|---|---|---|
| contains(String str) | boolean | 如果调用该方法的字符串包含指定的字符串 str,则返回 true,否则返回 false。 |
String str = "Hello, World!"; boolean containsWorld = str.contains("World"); System.out.println(containsWorld); // 输出:true
使用 indexOf 方法
indexOf 方法可以用来查找字符串中子字符串的位置,如果子字符串存在,它会返回第一个字符的索引;如果不存在,则返回 1。
| 方法名 | 返回值 | 说明 |
|---|---|---|
| indexOf(String str) | int | 返回指定字符串 str 在此字符串中第一次出现的索引,如果不存在则返回 1。 |
| indexOf(String str, int fromIndex) | int | 从指定索引开始查找,返回指定字符串 str 在此字符串中第一次出现的索引。 |
String str = "Hello, World!"; int index = str.indexOf("World"); System.out.println(index); // 输出:7 // 从索引5开始查找 int indexFrom5 = str.indexOf("World", 5); System.out.println(indexFrom5); // 输出:1,因为从索引5开始不存在"World"
使用 startsWith 和 endsWith 方法
startsWith 和 endsWith 方法分别用来检查字符串是否以特定的子字符串开头或结尾。

| 方法名 | 返回值 | 说明 |
|---|---|---|
| startsWith(String prefix) | boolean | 如果调用该方法的字符串以指定的字符串 prefix 开头,则返回 true,否则返回 false。 |
| endsWith(String suffix) | boolean | 如果调用该方法的字符串以指定的字符串 suffix 则返回 true,否则返回 false。 |
String str = "Hello, World!"; boolean startsWithHello = str.startsWith("Hello"); System.out.println(startsWithHello); // 输出:true boolean endsWithWorld = str.endsWith("World"); System.out.println(endsWithWorld); // 输出:true
使用正则表达式
使用正则表达式可以提供更灵活的搜索模式。String 类的 matches 方法可以用来检查字符串是否符合正则表达式。
| 方法名 | 返回值 | 说明 |
|---|---|---|
| matches(String regex) | boolean | 如果调用该方法的字符串与正则表达式 regex 匹配,则返回 true,否则返回 false。 |
String str = "Hello, World!"; boolean containsNumber = str.matches(".*[09].*"); System.out.println(containsNumber); // 输出:false boolean containsHello = str.matches(".*Hello.*"); System.out.println(containsHello); // 输出:true
FAQs
Q1:如何判断字符串中是否包含多个子字符串?


A1:可以使用正则表达式来实现,要检查字符串是否同时包含 “Hello” 和 “World”,可以使用以下代码:
String str = "Hello, World!"; boolean containsHelloAndWorld = str.matches(".*Hello.*World.*"); System.out.println(containsHelloAndWorld); // 输出:true
Q2:如何判断字符串中是否包含空格?
A2:可以使用 contains 方法来检查字符串中是否包含空格:
String str = "Hello, World!"; boolean containsSpace = str.contains(" "); System.out.println(containsSpace); // 输出:true