1. 方法概述

contains() 方法用于检查一个字符串是否包含另一个子字符串。该方法接受 CharSequence 类型的参数,这意味着我们可以传入任何实现了该接口的类实例,比如 StringBuilderStringBuffer

核心特点

  • 返回 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. 常见使用场景

  1. 输入验证:检查用户输入是否包含特定关键词
  2. 日志分析:快速定位包含错误信息的日志行
  3. 文本处理:判断字符串是否满足特定模式要求

⚠️ 性能提示:对于高频调用场景,建议使用 indexOf() 替代(避免创建临时 CharSequence 对象)

5. 注意事项

  • ✅ 支持所有 CharSequence 实现类(String/StringBuilder/StringBuffer
  • ❌ 不支持正则表达式(需要用 matches() 方法)
  • ⚠️ 空字符串 "" 始终返回 true(任何字符串都包含空字符串)