Java开发
Java 字符串截取详细说明
2025-02-05 32 0
简介 Java 对字符串截取的详细说明
在Java中,字符串截取主要通过 substring()
方法实现。字符串的索引从 0 开始,截取操作会返回新字符串(原始字符串不可变)。以下是详细说明和示例:
方法一:substring(int beginIndex)
截取从 beginIndex
开始到字符串末尾的部分。
参数:
beginIndex
(起始索引,包含该字符)注意:若
beginIndex < 0
或>= 字符串长度
,抛出StringIndexOutOfBoundsException
。
示例:
String str = "Hello, World!"; String sub1 = str.substring(7); // 从索引7开始到末尾System.out.println(sub1); // 输出: World!
方法二:substring(int beginIndex, int endIndex)
截取从 beginIndex
到 endIndex - 1
的子字符串。
参数:
beginIndex
(起始索引,包含)endIndex
(结束索引,不包含)注意:
若
beginIndex > endIndex
或索引越界,抛出异常。有效范围:
0 ≤ beginIndex ≤ endIndex ≤ 字符串长度
。
示例:
String str = "Hello, World!"; String sub2 = str.substring(0, 5); // 截取索引0到4System.out.println(sub2); // 输出: HelloString sub3 = str.substring(7, 12); // 截取索引7到11System.out.println(sub3); // 输出: World
常见错误及处理
索引越界:
String str = "Java";str.substring(5); // 抛出 StringIndexOutOfBoundsException
处理方式:检查参数有效性。
if (beginIndex >= 0 && beginIndex <= str.length()) { // 安全截取 }
动态截取:结合
indexOf()
定位字符。String email = "user@example.com";
int atIndex = email.indexOf('@');
String username = email.substring(0, atIndex);
System.out.println(username); // 输出: user
其他截取技巧
去除首尾空格:
trim()
String str = " Java ";
String trimmed = str.trim(); // "Java"
按分隔符分割:
split()
String data = "apple,banana,orange";String[] fruits = data.split(",");
// ["apple", "banana", "orange"]
总结
方法 | 参数 | 返回值 | 异常 |
---|---|---|---|
substring(beginIndex) | beginIndex | 从起始索引到末尾 | beginIndex 越界时抛出异常 |
substring(beginIndex, endIndex) | beginIndex , endIndex | 从起始到结束索引前一位 | 参数不合法时抛出异常 |
最佳实践:始终验证索引范围,避免异常。根据需求灵活组合 substring
、indexOf
等方法实现复杂截取逻辑。