1. 方法功能概述
endsWith()
是 Java 中 String
类提供的一个便捷方法,用于判断当前字符串是否以指定的后缀结尾。这个方法在日常开发中特别适合做文件类型校验、URL 路径检查等场景。
⚠️ 需要注意的特殊情况:当传入空字符串时,方法会直接返回 true
(因为任何字符串都可以视为以空字符串结尾)。
2. 方法签名
public boolean endsWith(String suffix)
- 参数:
suffix
- 要检查的后缀字符串 - 返回值:
- ✅
true
- 当前字符串以指定后缀结尾 - ❌
false
- 当前字符串不以指定后缀结尾
- ✅
3. 使用示例
3.1 基础用法
@Test
public void whenCallEndsWith_thenCorrect() {
String s1 = "test";
assertTrue(s1.endsWith("t")); // 检查是否以 't' 结尾
assertFalse(s1.endsWith("st")); // 检查是否以 'st' 结尾
}
3.2 空字符串处理
@Test
public void whenSuffixIsEmpty_thenReturnsTrue() {
String str = "anyString";
// 空字符串作为后缀时总是返回 true
assertTrue(str.endsWith(""));
}
3.3 实际应用场景
// 文件扩展名检查
String filename = "report.pdf";
if (filename.endsWith(".pdf")) {
System.out.println("PDF 文件");
}
// URL 路径校验
String apiEndpoint = "/api/v1/users";
if (apiEndpoint.endsWith("/users")) {
System.out.println("用户相关接口");
}
4. 常见踩坑点
- ❌ 大小写敏感:
"File.TXT".endsWith(".txt")
会返回false
- ✅ 空字符串处理:
"any".endsWith("")
永远返回true
- ⚠️ 性能考虑:频繁调用时建议缓存结果,特别是对长字符串操作
5. 替代方案对比
方法 | 特点 | 适用场景 |
---|---|---|
endsWith() |
简单直接 | 明确的后缀匹配 |
substring() + equals() |
灵活但繁琐 | 需要更复杂的后缀处理 |
正则表达式 | 功能强大 | 复杂模式匹配 |
💡 经验之谈:对于简单的后缀检查,直接用
endsWith()
是最简单粗暴的选择,代码可读性也最好。