Java 判断字符串是否包含某个字符
在 Java 中,判断一个字符串是否包含某个字符有几种常用方法:

使用 String.contains() 方法
这是最直接的方法,用于检查字符串是否包含指定的字符序列(可以是单个字符):
String str = "Hello World";
char targetChar = 'W';
if (str.contains(String.valueOf(targetChar))) {
System.out.println("字符串包含字符 '" + targetChar + "'");
} else {
System.out.println("字符串不包含字符 '" + targetChar + "'");
}
使用 String.indexOf() 方法
indexOf() 方法返回字符首次出现的位置,如果返回-1则表示不包含:
String str = "Hello World";
char targetChar = 'o';
int index = str.indexOf(targetChar);
if (index != -1) {
System.out.println("字符串包含字符 '" + targetChar + "',位置在 " + index);
} else {
System.out.println("字符串不包含字符 '" + targetChar + "'");
}
使用 String.toCharArray() 和循环
将字符串转换为字符数组后遍历检查:
String str = "Hello World";
char targetChar = 'l';
boolean contains = false;
for (char c : str.toCharArray()) {
if (c == targetChar) {
contains = true;
break;
}
}
if (contains) {
System.out.println("字符串包含字符 '" + targetChar + "'");
} else {
System.out.println("字符串不包含字符 '" + targetChar + "'");
}
使用 Java 8 的 String.chars() 方法
Java 8及以上版本可以使用流式处理:

String str = "Hello World";
char targetChar = 'e';
boolean contains = str.chars().anyMatch(c -> c == targetChar);
if (contains) {
System.out.println("字符串包含字符 '" + targetChar + "'");
} else {
System.out.println("字符串不包含字符 '" + targetChar + "'");
}
注意事项
-
方法都是区分大小写的,如果需要不区分大小写,可以先将字符串转换为统一大小写:
str.toLowerCase().contains(String.valueOf(targetChar).toLowerCase())
-
对于单个字符的检查,
contains()和indexOf()是最简洁高效的方法。 -
如果需要检查多个字符是否存在,可以考虑使用正则表达式:
boolean containsAny = str.matches(".*[abc].*"); // 检查是否包含a、b或c
选择哪种方法取决于你的具体需求和Java版本,对于大多数情况,contains() 方法是最简单直观的选择。

