为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

kaguya 2016-07-23 09:24:35
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角标啊,为什么不会抛出越界异常?
查看完整描述

1 回答

已采纳
?
liangqin

TA贡献6条经验 获得超1个赞

在return str.substring(start,end+1);之前str的长度是1,所以截取的时候start为1是没有问题的。

查看完整回答
反对 回复 2016-07-26
  • 1 回答
  • 0 关注
  • 1229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信