模拟去除字符串两端空格,这样写为什么不报错?

public class StringMethodTest{
	public static void sop(String str){
		System.out.println("("+str+")");
	}
	public static void main(String[]args){
		String s=" ";
		sop(s);
		s=strMethod(s);
		sop(s);
	}
	public static String strMethod(String str){
		int start=0;
		int end=str.length()-1;
		while(start<=end&&str.charAt(start)==' '){
			start++;
		}
		while (start<=end&&str.charAt(end)==' '){
			end--;
		}
		return str.substring(start,end+1);
	}
}

当字符串s为一个空格时,start=0;end=0;满足第一个循环start=1;end=0;不满足第二个循环,返回从角标1开始到0角标结束的字符串?可是没有1角标啊,为什么不会抛出越界异常?

kaguya
浏览 1240回答 1
1回答

liangqin

在return str.substring(start,end+1);之前str的长度是1,所以截取的时候start为1是没有问题的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java