1. 方法概述
contains()
方法用于检查一个字符串是否包含另一个子字符串。该方法接受 CharSequence
类型的参数,这意味着我们可以传入任何实现了该接口的类实例,比如 StringBuilder
和 StringBuffer
。
✅ 核心特点:
- 返回
boolean
类型结果 - 参数类型为
CharSequence
,提供灵活性 - 大小写敏感(区分大小写)
⚠️ 踩坑提示:传入 null
会直接抛出 NullPointerException
,使用前务必做非空校验
2. 方法签名
public boolean contains(CharSequence s)
3. 示例代码
下面通过测试用例展示典型用法:
@Test
public void whenCallContains_thenCorrect() {
String s = "abcd";
assertTrue(s.contains("abc")); // 返回 true
assertFalse(s.contains("cde")); // 返回 false
}
关键点解析:
"abcd"
包含"abc"
→ 返回true
"abcd"
不包含"cde"
→ 返回false
4. 常见使用场景
- 输入验证:检查用户输入是否包含特定关键词
- 日志分析:快速定位包含错误信息的日志行
- 文本处理:判断字符串是否满足特定模式要求
⚠️ 性能提示:对于高频调用场景,建议使用 indexOf()
替代(避免创建临时 CharSequence
对象)
5. 注意事项
- ✅ 支持所有
CharSequence
实现类(String
/StringBuilder
/StringBuffer
) - ❌ 不支持正则表达式(需要用
matches()
方法) - ⚠️ 空字符串
""
始终返回true
(任何字符串都包含空字符串)