曾经遇到一个java算法题,指定一段字符串,把字符串倒序加逗号输出,本人是新手,搞了半天没写出来,后来去查了StringBuilder 类和String类的方法,其中StringBuilder类提供了insert() 和setLength()方法,后来我再去查了下setLength()的用法,这个方法可以设一个参数以改变其序列的长度,而变成一个新的序列。
下面是insert()方法的用法:
StringBuilder str = new StringBuilder("asdfghjkl");
str.insert(i,','); // 在i这个位置插入',';
下面是setLength()方法的用法:
str1.setLength(str1.length()); // 利用 StringBuilder类的setLength()方法设置新的序列长度
然后我就写了这样一段代码:
package string;
public class string_example {
public static void main(String[] args) {
// 创建一个空的StringBuilder对象
StringBuilder str1 = new StringBuilder();
// 追加字符串
str1.append("jaewkjldfxmopzdm");
// 从后往前每隔三位插入逗号
for(int i=(str1.length());i>=0;i=i-3){
//利用StringBuilder 类的insert()方法插入 ','
str1.insert(i,',');
}
str1.setLength(str1.length()); // 利用 StringBuilder类的setLength()方法设置新的序列长度
// 将StringBuilder对象转换为String对象并输出
System.out.print(str1.toString());
System.out.println("\n");
}
}
运行结果是这个:
j,aew,kjl,dfx,mop,zdm,
后来我想想最后那个逗号能不能给它去掉,于是我又写了一段代码:
// 把str1 转换为字符串类型
String str2 = str1.toString();
// 截取从第一个到倒数第二个 重新赋给str2
str2=str2.substring(0,str1.length()-1);
System.out.println(str2);
下面是运行结果
j,aew,kjl,dfx,mop,zdm
下面把全部代码发上来
小弟是java菜鸟,大神们勿喷。有更好的算法或方法请告诉我。