隔壁诸葛村夫
2016-08-30 22:21
// 从后往前每隔三位插入逗号
for (int i=str.length()-3;i>0;i=i-3)
// 从前往后每隔三位插入逗号
for (int i=3;i<str.length();i=i+4)
例如,对于一个长度为7的字符串 "abcdefg"
从后往前每隔三位插入逗号:"a,bcd,efg"
从前往后每隔三位插入逗号:"abc,def,g"
所以它们的遍历方式是要相反的才行。
从后往前加逗号,整个字符串长度都在改变,但是插入后和插入前 有一样东西没变 就是字符串前面没有加逗号的字符的下标 是不变的
从前往后的话 前面的下标就一直在改变 所以i+4也不对(除非只有两次循环)
// 从后往前每隔三位插入逗号 for(int i=str.length()-3;i>0;i=i-3){ //i的位置 System.out.println(i); str.insert(i,","); System.out.print(str.toString()); //str的长度 System.out.println(" "+str.length()); } // 从前往后每隔三位插入逗号 for(int i=3;i<str.length();i=i+4){ //i的位置 System.out.println(i); str.insert(i,","); System.out.print(str.toString()); //str的长度 System.out.println(" "+str.length()); }
首先这个插入是在第几个数之后插入,记住是之后插入。
然后从后往前,int i=str.length();这个是初始变量,所以只会执行一次。让你想,比如我在1234567,在4后面插入一个顿号,这个时候初始长度是7,7-3=4,所以在长度为4的地方插入是不是变成了1234,567,这个时候再来一次i-3=4-4=1,所以从第一个数之后插入。因为每次插入是从前往后数 的方法,每次顿号是在你要插入的数之后,所以没有影响。
反之从前往后插入,那么就是i+4,这个时候你在第三位插入一个一个顿号,从前往后数,那么要多加一个顿号的位置,所以是i+4;
我的理解是这样 不知道真确不真确
没懂,能说清楚点吗?谢谢。
因为字符串的长度不同,如“abcde”,从前往后“abc,de”,从后往前“ab,cde”
Java入门第三季
409792 学习 · 4340 问题
相似问题