问答详情
源自:2-6 Java 中的 StringBuilder 类的常用方法

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

提问者:慕少0539821 2018-07-28 15:14

个回答

  • 亦菲大魔王
    2019-03-08 10:04:46

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

  • 慕先生5461412
    2019-02-01 09:02:44

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

  • 精慕门3907814
    2019-01-16 20:45:33

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

  • 慕娘5114374
    2018-08-07 19:08:42

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

  • hwg1996
    2018-07-29 16:21:16

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

  • qq_叶的离去_0
    2018-07-28 15:29:43

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