substring()方法功能:
substring()方法是String类的一个方法,故该方法的调用者为String类的对象,即字符串。
str.substring(indexStart,indexEnd)功能为:截取方法调用者(即str)的从indexStart到indexEnd(包括indexStart,不包括indexEnd;即含头不含尾、或左闭右开区间内的子字符串)
例如:
public class App {
public static void main(String[] args) {
String str = "123456789";
System.out.println(str.substring(0,3));
}
}
结果:
关于substring(indexStart,indexEnd)方法的补充说明:
1、如果indexStart等于indexEnd,substring()方法返回一个空字符串;
2、如果任一参数小于0,则被当做0;
3、如果任一参数大于str.lengtn(),则被当做str.lengtn()。
Java的API中的String类的substring源码:
public String substring(int beginIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
int subLen = value.length - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
}
substring(int beginIndex)从beginIndex截取到字符串的末尾,包括开始位置
例如:
public class App {
public static void main(String[] args) {
String str = "123456789";
System.out.println(str.substring(3));
}
}
//结果为456789
public String substring(int beginIndex, int endIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > value.length) {
throw new StringIndexOutOfBoundsException(endIndex);
}
int subLen = endIndex - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return ((beginIndex == 0) && (endIndex == value.length)) ? this
: new String(value, beginIndex, subLen);
}