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

str.insert(i, ","); 这句执行完成后,str字符串已经新加了一个逗号,那下一次插入时str位置不是就改变了吗?

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位置不是就改变了吗?

正在回答

6 回答

按教程的说法,str是不变类,stringbuilder是一直变的类。str插入以后不变还能理解。为啥stringbuilder会不变呢?

0 回复 有任何疑惑可以回复我~
#1

亦菲大魔王

我觉得可能从前往后插有问题,从后往前插没问题
2019-03-08 回复 有任何疑惑可以回复我~

1楼不确定,23楼感觉是在放狗屁

0 回复 有任何疑惑可以回复我~

其实我觉得楼主想问的是为什么是 i-=3,中间不是插入了一个逗号吗?也就是说逗号是在 i 的前一个位置(即,i+1的位置), 所以下一个逗号不应该是插在 i-4 的位置吗?为什么是i-3的位置呢?

0 回复 有任何疑惑可以回复我~

int i=str.length()-3;  就第一次执行。 后来插入时的长度虽然变了  但插入的是字符串后面,与前面的位置没有关系,所以按照以前的长度插入时不会有问题的

0 回复 有任何疑惑可以回复我~

str的长度虽然变了,但是for循环的int i=str.length()-3中的“i”只 和初始的字符串长度有关,和str变化后的长度无关

1 回复 有任何疑惑可以回复我~

变啊    在打逗号的哪个位置再3   然后再打逗号

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

str.insert(i, ","); 这句执行完成后,str字符串已经新加了一个逗号,那下一次插入时str位置不是就改变了吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信