1. 核心概念

subSequence() 方法用于从字符串中提取指定范围的子序列。其行为与 substring() 完全一致,唯一区别在于返回类型:
✅ 返回 CharSequence 而非 String
⚠️ 实际开发中可直接视为 substring() 的变体,无需过度纠结类型差异

2. 方法签名

public CharSequence subSequence(int beginIndex, int endIndex)
  • beginIndex:起始索引(包含)
  • endIndex:结束索引(不包含)
  • 返回值:CharSequence 类型子序列

3. 使用示例

@Test
public void whenCallSubSequence_thenCorrect() {
    String s = "Welcome to Baeldung";
    
    assertEquals("Welcome", s.subSequence(0, 7));
}

执行逻辑

  1. 从索引 0(字符 'W')开始截取
  2. 到索引 7(空格字符前)结束
  3. 返回 "Welcome"CharSequence 表示

4. 关键注意事项

  • ✅ 与 substring() 性能等价,底层实现相同
  • ❌ 返回的 CharSequence 不可修改(尝试修改会抛出异常)
  • ⚠️ 索引越界时抛出 StringIndexOutOfBoundsException
  • 💡 实际项目中更常用 substring(),除非明确需要 CharSequence 接口类型