java字符串的startswith和endswith方法是校验前缀后缀最直接高效的方式,调用对象不可为null但参数可为null;startswith区分大小写且支持指定起始位置,endswith常用于文件类型判断,二者均对空字符串返回true,但参数为null会抛npe。

Java 字符串的 startsWith 和 endsWith 方法是校验前缀和后缀最直接、高效的方式,无需手动截取或正则匹配,且对 null 安全(调用对象不能为 null,但参数可为 null)。
startsWith:检查字符串是否以指定前缀开头
该方法有三个重载版本,最常用的是传入字符串参数的版本。它区分大小写,返回 boolean 值。
-
基本用法:直接传入目标前缀,如
"HelloWorld".startsWith("Hello")返回true -
指定起始位置:可用
startsWith(String prefix, int toffset)检查从某索引开始是否匹配,例如"abcHello".startsWith("Hello", 3)返回true -
注意 null 风险:调用对象本身不能为 null,否则抛
NullPointerException;建议先判空或使用Objects.nonNull(str) && str.startsWith(...)
endsWith:检查字符串是否以指定后缀结尾
该方法只有一个参数,语义清晰,常用于文件类型判断、URL 路径校验等场景。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
基础校验:如
"report.pdf".endsWith(".pdf")返回true;"data.json".endsWith(".json")同样适用 -
大小写敏感:默认区分大小写,若需忽略大小写,可先转小写再判断,例如
str.toLowerCase().endsWith(".jpg") -
空字符串是合法后缀:任何非 null 字符串调用
endsWith("")都返回true,这点与前缀一致
组合使用 + 实用技巧
前缀和后缀校验经常配合使用,比如验证邮箱格式(虽不替代完整校验,但可快速过滤)、路径合法性或 API 接口标识。
-
链式校验示例:判断是否为 HTTPS 的静态资源链接 ——
url != null && url.startsWith("https://") && url.endsWith(".js") -
避免重复创建对象:不要写成
str.substring(0, n).equals(prefix),效率低且易越界;startsWith内部做了边界检查和快速比对 -
结合常量提升可读性:定义
private static final String IMAGE_PREFIX = "img_";,再用filename.startsWith(IMAGE_PREFIX),便于维护
常见误区提醒
这两个方法看似简单,但实际使用中容易踩坑。
-
空字符串参数有效:
"abc".startsWith("")和"abc".endsWith("")都返回true,不是 bug,是设计如此 -
不能传 null 作为前缀/后缀:若参数为 null,会直接抛
NullPointerException,务必确保传入非 null 字符串 -
不支持通配符或正则:如果需要模糊匹配(如“以 a 或 b 开头”),得改用
Pattern或String.indexOf等方式
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










