public class HelloWorld {
public static void main(String[] args) {
// 创建一个空的StringBuilder对象
StringBuilder str=new StringBuilder();
// 追加字符串
str.append("jaewkjldfxmopzdm");
// 从后往前每隔三位插入逗号
int i=str.length();
do{
i=i-3;
str.insert(i,',');
}
while (1>0);
// 将StringBuilder对象转换为String对象并输出
System.out.print(str.toString());
}
}
判断条件改为 i>3 即可!否则报错
执行str.insert()方法之后,再改变 i 的值,
str.insert();
i -=3;
i -=3 不能在insert方法之前
// 创建一个空的StringBuilder对象 StringBuilder str = new StringBuilder(); // 追加字符串 str.append("jaewkjldfxmopzdm"); // 从后往前每隔三位插入逗号 int i = str.length(); while (i > 1) { i--; if (i % 3 == 0) { str.insert(i-2, ","); } } // 将StringBuilder对象转换为String对象并输出 System.out.println(str.toString());
你不能用do while循环,因为当i等于1的时候他还会在执行一次1-3=-2;因为str中没有负2的的位置所以出现异常,运行时报错,你应该使用先判断在循环的语句执行。
public static void main(String[] args) { StringBuilder str = new StringBuilder(); str.append("jaewkjldfxmopzdm"); int i = str.length()-3; while(i>=0){ str.insert(i, ','); i = i - 3; } System.out.println(str.toString()); }
i = i - 3;
if (i > 0)
str.insert(i, ',');
最后一遍的i已经小于0了,但你还是强行插入
public class HelloWorld {
public static void main(String[] args) {
// 创建一个空的StringBuilder对象
StringBuilder str=new StringBuilder();
// 追加字符串
str.append("jaewkjldfxmopzdm");
// 从后往前每隔三位插入逗号
int i=str.length();
do{
i=i-3;
str.insert(i,',');
}
while (i>0);
// 将StringBuilder对象转换为String对象并输出
System.out.print(str.toString());
}
}