1. 方法介绍

startsWith() 是 Java 中 String 类提供的便捷方法,用于判断字符串是否以指定前缀开头。这个方法特别适合处理字符串前缀匹配的场景,比如文件扩展名检查、URL 协议验证等。⚠️ 需要注意的是,它区分大小写,且支持从指定位置开始检查。

2. 方法签名

该方法提供两种重载形式:

public boolean startsWith(String prefix)
public boolean startsWith(String prefix, int toffset)

参数说明

  • prefix:需要匹配的前缀字符串
  • toffset(可选):开始检查的位置索引(从0开始)

常见踩坑

  • toffset 为负数时会抛出 StringIndexOutOfBoundsException
  • 传入 null 前缀会直接抛出 NullPointerException

3. 示例代码

@Test
public void whenCallStartsWith_thenCorrect() {
    String str = "foo";
    
    // 基础用法:检查是否以"f"开头
    assertTrue(str.startsWith("f"));
    
    // 指定位置检查:从索引1开始是否以"oo"开头
    assertTrue(str.startsWith("oo", 1));
}

实际应用场景

  • 文件类型校验:fileName.endsWith(".java")
  • URL 协议判断:url.startsWith("https://")
  • 日志过滤:logLine.startsWith("[ERROR]")

💡 性能提示:对于高频调用的场景,startsWith() 比正则表达式或 substring() 组合更高效,底层直接比较字符数组。