Java中截取子字符串常用String类的substring()方法,提供两种重载形式:从指定索引到末尾,或指定起止索引(左闭右开)。2. 该方法不修改原字符串,返回新字符串,索引从0开始。3. 需注意索引越界会抛出StringIndexOutOfBoundsException异常,beginIndex不能大于endIndex且均不能为负。4. 结合indexOf、lastIndexOf等方法可动态截取,如提取URL域名。5. 若beginIndex等于endIndex,返回空字符串。掌握其用法和边界情况可满足大多数字符串截取需求。

在Java中截取子字符串,最常用的方法是使用String类的substring()方法。这个方法允许你从一个字符串中提取指定范围内的字符,生成新的字符串。
substring() 方法的基本用法
String类提供了两个重载版本的substring方法:
- substring(int beginIndex):从指定索引开始,一直截取到字符串末尾。
- substring(int beginIndex, int endIndex):从beginIndex开始,截取到endIndex(不包含endIndex位置的字符)。
注意:字符串索引从0开始,且substring不会修改原字符串,而是返回一个新的字符串。
示例代码:
String str = "Hello, World!";
String sub1 = str.substring(7); // 结果:"World!"
String sub2 = str.substring(0, 5); // 结果:"Hello"
常见注意事项
使用substring时需要注意以下几点:
立即学习“Java免费学习笔记(深入)”;
- 索引不能越界,否则会抛出StringIndexOutOfBoundsException异常。
- beginIndex必须小于等于endIndex,且都不能为负数。
- 如果beginIndex等于endIndex,返回的是空字符串""。
结合其他方法灵活截取
实际开发中,常常配合indexOf、lastIndexOf等方法来动态确定截取位置。
例如:提取URL中的域名
String url = "https://www.example.com/path";
int start = url.indexOf("://") + 3; // 找到协议后的起始位置
int end = url.indexOf("/", start); // 找到路径开始的位置
String domain = url.substring(start, end); // 结果:"www.example.com"










