我知道有一种简单的方法可以做到这一点......说的是,我正在尝试使用选择排序和stringBuilder类对字符串进行排序,但是我得到了一个无限循环。如果有人可以帮忙,谢谢。 包第9章; import java.util。*;
public class SortedString {
public static void main(String[] args) {
String input = "cabed";
System.out.println(sort(input));
}
public static String sort(String str) {
StringBuilder sb = new StringBuilder(str);
for(int i=0; i<sb.length()-1; i++) {
char tmp;
for(int j=i+1; j<sb.length(); j++) {
if(sb.charAt(j) < sb.charAt(i)) {
tmp = sb.charAt(i);
sb.insert(i, sb.charAt(j));
sb.insert(j, tmp);
}
}
}
return sb.toString();
}
}
答案 0 :(得分:3)
每次交换时,实际上都会增加字符串的长度。
if(sb.charAt(j) < sb.charAt(i)) {
tmp = sb.charAt(i);
sb.insert(i, sb.charAt(j));
sb.insert(j, tmp);
}
插入会在指定位置腾出空间,而不是替换那里的字符。例如,如果您从acbd
开始,在您点击该部分代码后,您将被abccbd
而不是abcd
。
我认为你要找的是setCharAt方法。