String类substring方法

踩了一个坑,记录一下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("这行输出可以执行");
	}
}

结果如下图所示。
String类substring方法_第1张图片
实际编码过程中,如果遇到要截取字符串做判断,而正好截取方法的参数是以变量形式传入,那么当两个变量都从0开始取值时,substring(0,0)是个要注意的点。例如

for (int i = 0; i < n; i++) {
	for (int j = 0; j < m; j++) {
		String string = s.substring(i, j);
		if (/*string的判断条件*/) {
			//控制代码
		}
	}
}

你可能感兴趣的:(踩坑集,java,字符串)