慕无忌6063789
2020-01-20 19:21
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());
}
}
Java入门第三季
409775 学习 · 4546 问题
相似问题