慕少0539821
2018-07-28 15:14
public class HelloWorld { public static void main(String[] args) { // 创建一个空的StringBuilder对象 StringBuilder str = new StringBuilder(); // 追加字符串 str.append("jaewkjldfxmopzdm"); // 从后往前每隔三位插入逗号 for(int i=str.length()-3; i>=0; i-=3) { str.insert(i, ","); } // 将StringBuilder对象转换为String对象并输出 System.out.print(str.toString()); } } str.insert(i, ","); --- 这句执行完成后,str字符串不是已经新加了一个逗号吗,那下一次插入str位置不是就改变了吗?
按教程的说法,str是不变类,stringbuilder是一直变的类。str插入以后不变还能理解。为啥stringbuilder会不变呢?
1楼不确定,23楼感觉是在放狗屁
其实我觉得楼主想问的是为什么是 i-=3,中间不是插入了一个逗号吗?也就是说逗号是在 i 的前一个位置(即,i+1的位置), 所以下一个逗号不应该是插在 i-4 的位置吗?为什么是i-3的位置呢?
int
i=str.length()-
3
; 就第一次执行。 后来插入时的长度虽然变了 但插入的是字符串后面,与前面的位置没有关系,所以按照以前的长度插入时不会有问题的
str的长度虽然变了,但是for循环的int
i=str.length()-
3中的“i”只 和初始的字符串长度有关,和str变化后的长度无关
变啊 在打逗号的哪个位置再3 然后再打逗号
Java入门第三季
409792 学习 · 4340 问题
相似问题