1
我知道有一個簡單的方法做到這一點...說,我試圖使用選擇排序和stringBuilder類的字符串進行排序,但我得到一個無限循環。如果有人可以幫助,讚賞。 包第9Str; import java.util。*;使用選擇排序字符串排序alg
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();
}
}
你每次在循環中都插入兩個字符 - 我懷疑這是你的意圖。難道你不應該刪除兩個或更換它們嗎? – OldCurmudgeon
順便說一句 - 這不是[選擇排序](http://en.wikipedia.org/wiki/Selection_sort)這是[冒泡排序](http://en.wikipedia.org/wiki/Bubble_sort) – OldCurmudgeon
@OldCurmudgeon否它不是。交換命中的次數比它需要的次數多(最低值只能在tmp中跟蹤,然後在內部迴路末尾交換),但通過內部迴路,我是靜態的,並且在每次迭代結束時外部循環,確切地說,一個更多的值保證按順序排列,從最小到最大。 – femtoRgon