startswith和endswith是java中校验字符串前缀与后缀最直接高效的方法,区分大小写,支持指定起始位置(startswith)或自动对齐末尾(endswith),空字符串恒为真,null需预先判空。

Java 中的 startsWith 和 endsWith 是字符串校验前缀与后缀最直接、高效的方法,区分大小写且支持指定起始/结束位置。
startsWith:检查字符串是否以指定前缀开头
该方法有三个重载版本,常用的是:
-
str.startsWith(String prefix):从字符串开头(索引 0)判断是否以prefix开头 -
str.startsWith(String prefix, int toffset):从索引toffset开始检查是否以prefix开头(常用于子串校验)
示例:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
s.startsWith("Hello"); // true
s.startsWith("hello"); // false(区分大小写)
s.startsWith("World", 5); // true(从索引 5 开始,即 "World")
endsWith:检查字符串是否以指定后缀结尾
只有一种常用形式:
-
str.endsWith(String suffix):判断字符串是否以suffix结尾(自动从末尾对齐,无需指定位置)
示例:
String s = "data.json";s.endsWith(".json"); // true
s.endsWith(".JSON"); // false
s.endsWith(""); // true(空字符串是任意字符串的后缀)
使用注意事项
- 两个方法都区分大小写;如需忽略大小写,可先转为统一大小写再调用,例如:
s.toLowerCase().startsWith("abc") - 参数为
null会抛出NullPointerException,建议校验非空:s != null && s.startsWith(...) -
startsWith("", 0)或endsWith("")均返回true,这是 Java 的定义行为 - 若
toffset超出字符串长度或为负数,startsWith返回false(不会抛异常)
替代方案与补充说明
对于更复杂的匹配(如通配符、正则),可用 matches() 或 Pattern,但性能和语义不如 startsWith/endsWith 清晰。简单前缀/后缀判断,这两个方法就是标准、安全、零依赖的选择。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










