复制楼主代码运行了下,结果为:
123
12
1
23
2
3
楼主少个3哟
下面,记得要善于查询API文档哈。
先贴上API中的说明:
substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1 处的字符。
因此,该子字符串的长度为 endIndex-beginIndex。
注意:beginIndex - 开始处的索引(包括)。endIndex - 结束处的索引(不包括)。
这里还需要注意的是,索引结束为止是endIndex - 1 而不是 endIndex。
再下面分析下程序:
这是典型滴for循环套for循环。
然后顺序就是i=0: i=0,j=3; i=0,j=2; i=0,j=1; i=0,j=0;
i=1: i=1,j=3; i=1,j=2; i=1,j=1;
i=2: i=2,j=3; i=2,j=2;
i=3: i=3,j=3;
然后就是结果啦~拿第一个举例先:i=0,j=3那么按substring(i,j)规则str输出范围为0~3-1=2。也就是第一位到第三位啦~结果:123
其他类似。
但是当i=j时:按规则有sunstring(i,j)最终长度为j-i。
所以。i=j=0; i=j=1; i=j=2; i=j=3;时字符串长度即为0,就是~木有结果~
因而一共有10次循环打印,4次木有结果,因而最终只输出的6个值:123 12 1 23 2 3
|