https://blog.csdn.net/Crezfikbd/article/details/119708978
踩了一个坑,记录一下String类的substring方法。
substring方法可以用来截取字符串,它有两种表现形式:
substring(int beginIndex)
substring(int beginIndex, int endIndex)
1、substring(int beginIndex)
从输入参数所指定的位置开始(包含该开始位置的字符),截取到字符串最后一个位置。具体示例如下:
public class Test {
? ? ? ?public static void main(String[] args) {
? ? ? ? ? String s = "天气有点热";
? ? ? ? ? String newString = s.substring(1);
? ? ? ? ? System.out.println(newString);
? ? ?}
}
输出结果:
气有点热
注意点:截取字符串的下标位置是从0开始计起。
2、substring(int beginIndex, int endIndex)
根据指定的起始位置和终止位置,截取字符串。包含起始位置的字符,但不包含终止位置的字符。具体示例如下:
public class Test {
? ? ? ? public static void main(String[] args) {
? ? ? ? String s = "天气有点热";
? ? ? ? String newString = s.substring(1,4);
? ? ? ? System.out.println(newString);
? ? ?}
}
‘天’、‘气’、‘有’、‘点’、‘热’这5个字符对应的下标位置分别是0、1、2、3、4。
根据这个方法的特点,我们可以知道,上面的代码截取的是从第1个位置到第4个位置的字符串,包含第1个位置的字符但不包含第4个位置的字符,所以输出结果是:
气有点
注意点:endIndex的最大值为字符串的长度,不能超过。
一个有意思的地方是,当我们截取substring(0,0)时,得到的是结果是"",并不会报错,而且也不阻碍后面代码的执行。示例证明如下:
public class Test {
? ? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ? ? String s = "天气有点热";
? ? ? ? ? ? ? ? String newString = s.substring(0,0);
? ? ? ? ? ? ? ? System.out.println(newString.equals(""));
? ? ? ? ? ? ? ? System.out.println("这行输出可以执行");
? ? ? ?}
}
结果如下图所示。