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

这个循环为啥出来的不一样啊

public class HelloWorld {

    public static void main(String[] args) {

// 创建一个空的StringBuilder对象

StringBuilder str = new StringBuilder();

        

// 追加字符串

str.append("jaewkjldfxmopzdm");

        // 从后往前每隔三位插入逗号

        for(int i=1;i<=5;i++){

str.insert((str.length()-(i*3)),",");

        }

        

        // 将StringBuilder对象转换为String对象并输出

System.out.print(str.toString());

}

}

jaewk,ji,df,xm,op,zdm



正在回答

2 回答

插入之后 长度增加,减去的应该是三个字母和逗号的长度,这么写不严谨 i的取值范围得首先计算一下吧!!!

用倒叙的方法 sb.length 每次减去三

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

莫志伟 提问者

我不是纠结这个,你看我新提的问题
2018-10-17 回复 有任何疑惑可以回复我~
#2

刘老A 回复 莫志伟 提问者

因为每运行一次,str.length()都会因为插入了“,”符号而增大1,不信你可以在循环里加一句System.out.println(str.length());看看。 你可以改为for(int i=str.length()-3;i>=0;i=i-3){ str.insert(i,",");} 或者 for(int i=1;i<=5;i++){ str.insert((str.length()-(i*3)-i+1),",");}
2018-11-04 回复 有任何疑惑可以回复我~
#3

慕少7989698 回复 刘老A

-i+1什么意思啊
2018-12-11 回复 有任何疑惑可以回复我~

//创建一个StringBuilder

StringBuilder sb = new StringBuilder();

sb.append("jaewkjldfxmopzdm");

for(int i =0;i<=5;i++) {

sb.insert(sb.length()-(i*4), ",");

}

System.out.println(sb.toString());


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

莫志伟 提问者

不对啊
2018-10-17 回复 有任何疑惑可以回复我~
#2

魈小混球 回复 莫志伟 提问者

j,aew,kjl,dfx,mop,zdm,我这样运行的结果。。。
2018-10-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个循环为啥出来的不一样啊

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