java中判断字符串前缀/后缀最直接高效的方式是使用string类的startswith()和endswith()方法:前者支持从指定索引检查前缀,后者仅作用于字符串末尾,二者均区分大小写、接受空字符串参数且底层优化良好,但需注意null安全及大小写处理。

Java 中判断字符串是否以指定前缀或后缀开头/结尾,最直接、高效的方式是使用 String 类内置的 startsWith() 和 endsWith() 方法。它们底层优化良好,语义清晰,无需手动截取或正则匹配。
判断是否以指定前缀开头
用 startsWith(String prefix) 检查整个字符串是否从索引 0 开始匹配给定前缀:
- 返回
true表示完全匹配(区分大小写);false表示不匹配或字符串为空且前缀非空 - 若
prefix为空字符串(""),方法恒返回true - 支持重载版本
startsWith(String prefix, int toffset),可从指定位置开始检查子串是否以该前缀开头
示例:
String s = "https://example.com";
System.out.println(s.startsWith("http")); // true
System.out.println(s.startsWith("https://")); // true
System.out.println(s.startsWith("Http")); // false(大小写敏感)
System.out.println(s.startsWith("example", 8)); // true(从索引 8 开始检查)
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
判断是否以指定后缀结尾
用 endsWith(String suffix) 判断字符串末尾是否等于给定后缀:
- 同样区分大小写,也接受空字符串参数(返回
true) - 内部通过比较字符串长度和末尾字符序列实现,不依赖
lastIndexOf或substring,性能更优 - 注意:不能指定偏移量,只作用于整个字符串末尾
示例:
String file = "report.pdf";
System.out.println(file.endsWith(".pdf")); // true
System.out.println(file.endsWith(".PDF")); // false
System.out.println("".endsWith("")); // true
常见注意事项
实际使用中需留意几个关键点:
- 空值(
null)调用会抛出NullPointerException,建议先判空或用Objects.nonNull(s) && s.startsWith(...) - 前缀/后缀为
null时,方法本身会抛异常,务必确保参数非空 - 若需忽略大小写,可先统一转成小写再判断:
s.toLowerCase().startsWith(prefix.toLowerCase()) - 不推荐用
indexOf(0)或substring(0, n).equals(...)替代,既易出错(如越界),又无必要地低效
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










