substring

在Java中,String 类提供了一个 substring(int beginIndex) 和 substring(int beginIndex, int endIndex) 方法,用于从字符串中提取子字符串。这两个方法的行为略有不同,但都基于字符的索引来提取子字符串。

1. substring(int beginIndex)

这个方法接受一个参数 beginIndex,它表示子字符串的起始索引(包含)。该方法将返回从 beginIndex 开始到原字符串末尾的子字符串。

注意beginIndex 必须在字符串的索引范围内,即 0 <= beginIndex <= string.length()。如果 beginIndex 等于字符串的长度,那么返回的字符串将是空的。

2. substring(int beginIndex, int endIndex)

这个方法接受两个参数:beginIndex(子字符串的起始索引,包含)和 endIndex(子字符串的结束索引,不包含)。该方法将返回从 beginIndex 开始到 endIndex - 1 的子字符串。

注意

  • beginIndex 必须小于 endIndex
  • beginIndex 和 endIndex 都必须在字符串的索引范围内,即 0 <= beginIndex <= endIndex <= string.length()
  • 如果 endIndex 等于字符串的长度,那么 endIndex 实际上指向的是字符串末尾的下一个位置(即字符串外的位置),因此返回的子字符串将不包括 endIndex 位置的字符。

示例

public class SubstringExample {  
    public static void main(String[] args) {  
        String str = "Hello, World!";  
  
        // 使用 substring(int beginIndex)  
        String sub1 = str.substring(7);  
        System.out.println(sub1); // 输出: World!  
  
        // 使用 substring(int beginIndex, int endIndex)  
        String sub2 = str.substring(0, 5);  
        System.out.println(sub2); // 输出: Hello  
  
        // 注意:如果beginIndex或endIndex超出范围,将抛出StringIndexOutOfBoundsException  
        // String sub3 = str.substring(12, 15); // 这将抛出异常,因为endIndex超出了字符串的长度  
    }  
}

在上面的示例中,substring 方法被用来从字符串 "Hello, World!" 中提取子字符串。第一个调用提取了从索引 7 开始到字符串末尾的子字符串 "World!"。第二个调用提取了从索引 0 开始到索引 5(不包含索引 5)的子字符串 "Hello"

### substring 方法使用示例及注意事项 在处理字符串时,经常需要从一个较长的字符串中提取出一部分子字符串,这时就可以使用 `substring` 方法。不同的编程语言中,`substring` 方法的具体实现可能会有所不同,但其基本功能和用途是相似的。以下是几种常见编程语言中 `substring` 方法的使用示例及注意事项。 #### JavaScript 中的 substring 方法 JavaScript 中的 `substring` 方法用于从一个字符串中提取指定的子字符串,并返回新的字符串。此方法不会修改原始字符串。 - **语法**:`str.substring(indexStart[, indexEnd])` - **参数**: - `indexStart`:开始索引,包括该索引处的字符。 - `indexEnd`:结束索引,不包括该索引处的字符。 - **返回值**:一个新的字符串,包含从 `indexStart` 到 `indexEnd`(不包含)之间的字符。 示例: ```javascript let str = "Hello, world!"; let subStr = str.substring(0, 5); console.log(subStr); // 输出 "Hello" ``` 注意事项: - 如果 `indexStart` 大于 `indexEnd`,则会自动交换这两个参数的位置。 - 如果任一参数为负数,则会被视为 `0`。 - 如果任一参数大于字符串长度,则会被视为字符串长度。 #### Java 中的 substring 方法 Java 中的 `substring` 方法同样用于从一个字符串中提取指定的子字符串,但其方法重载形式略有不同。 - **语法**: - `public String substring(int beginIndex)` - `public String substring(int beginIndex, int endIndex)` - **参数**: - `beginIndex`:开始索引,包括该索引处的字符。 - `endIndex`:结束索引,不包括该索引处的字符。 - **返回值**:一个新的字符串,包含从 `beginIndex` 到 `endIndex`(不包含)之间的字符。 示例: ```java String str = "Hello, world!"; String subStr = str.substring(0, 5); System.out.println(subStr); // 输出 "Hello" ``` 注意事项: - 如果 `beginIndex` 或 `endIndex` 为负数,或者 `endIndex` 小于 `beginIndex`,则会抛出异常。 - 如果 `beginIndex` 超过了字符串的长度,或者 `endIndex` 超过了字符串的长度,则会抛出异常[^3]。 为了防止越界异常,可以使用 `Math.min` 函数来确保不会超出字符串的实际长度。 更优解写法: ```java String originalString = "这里是很长的字符串,可能会超过1000个字符。我们需要截取这个字符串的前1000个字符。"; String substring = originalString.substring(0, Math.min(originalString.length(), 1000)); System.out.println(substring); ``` 以上代码中,`Math.min` 函数的作用是确保即使原始字符串的长度小于 `1000`,也不会导致 `substring` 方法抛出异常。这种方法在处理不确定长度的字符串时特别有用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值