在Java中,substring()方法用于从一个字符串中提取子字符串。它有两种形式的重载:
substring(int beginIndex):从指定索引位置开始提取子字符串,并返回该子字符串。子字符串包括指定索引位置的字符及其之后的字符。
substring(int beginIndex, int endIndex):从指定的起始索引位置开始,提取到指定的结束索引位置之前的子字符串,并返回该子字符串。子字符串包括起始索引位置的字符,但不包括结束索引位置的字符。
以下是关于substring()方法的详细说明:
beginIndex:子字符串的起始索引位置。它是一个0-based索引,表示字符串中的字符位置。如果指定的索引位置超出字符串的范围(小于0或大于等于字符串的长度),将引发StringIndexOutOfBoundsException异常。
endIndex:子字符串的结束索引位置(不包括在内)。同样,它是一个0-based索引,表示字符串中的字符位置。如果指定的结束索引位置超出字符串的范围(小于0或大于字符串的长度),或者小于等于起始索引位置,也将引发StringIndexOutOfBoundsException异常。
注意事项:
如果你只传递一个参数beginIndex,那么substring()方法将返回从指定索引位置开始到字符串末尾的子字符串。
substring()方法返回的子字符串是一个新的字符串对象,它是原始字符串的一个部分副本。因此,对子字符串的任何修改都不会影响原始字符串。
代码演示
String str = "Hello, World!";
// 示例1:提取从索引位置6开始的子字符串(包括索引位置6的字符)
String sub1 = str.substring(6);
System.out.println(sub1); // 输出: World!
// 示例2:提取从索引位置0到索引位置5之间的子字符串(不包括索引位置5的字符)
String sub2 = str.substring(0, 5);
System.out.println(sub2); // 输出: Hello
加上indexOf方法
当使用substring()方法时,可以结合indexOf()方法来查找指定子字符串的索引位置,并将该索引作为参数传递给substring()方法。这样可以方便地提取包含特定子字符串的子字符串。
String str = "Hello, World!";
// 查找子字符串"World"的起始索引位置
int startIndex = str.indexOf("World");
if (startIndex != -1) {
// 提取从"World"开始到字符串末尾的子字符串
String sub = str.substring(startIndex);
System.out.println(sub); // 输出: World!
}
使用indexOf(“World”)方法查找子字符串"World"的起始索引位置。如果找到了匹配的子字符串,将返回其索引位置;否则返回-1。然后,将该索引位置传递给substring()方法,以提取从该索引位置开始到字符串末尾的子字符串。