所以我在Java初學者從一本書解決其中的問題是:Lexological字符串排序查詢
寫一個程序,設置了包含您所選擇的一段文字 一個字符串變量。從文本中提取單詞並按照字母順序將它們排序 。顯示排序的單詞列表。你可以用 使用一種簡單的排序方法,稱爲冒泡排序。按照升序排列數組 ,過程如下:a。從 開始,數組中的第一個元素,比較連續元素(0和1,1 和2,2和3等等)。灣如果任何一對的第一個元素大於第二個元素,則交換這兩個元素。 C。重複整個陣列的 過程,直到不需要交換。 數組元素現在按升序排列。
爲了這我的解決辦法是:
public class bubbleSort {
public static void main(String[] args) {
String Homer = "He was the son of Epikaste and Telemachus. " +
"He was said to be a court singer ";
String swap;
Homer = Homer.replace(',', ' ');
Homer = Homer.replace('.', ' ');
Homer = Homer.replace(" ", " ");
String[] words = Homer.split(" ");
for(String val:words){
System.out.println(val);
}
System.out.println(" ---- SORTED -------");
boolean exchange = true;
while (exchange) {
exchange = false;
for (int i = 0; i < (words.length - 1); ++i) {
if (words[i].charAt(0) > words[i + 1].charAt(0)) {
swap = words[i];
words[i] = words[i + 1];
words[i + 1] = swap;
exchange = true;
}
}
}
for(String val:words){
System.out.println(val);
}
}
}
然而有序輸出並未如預期!
他Epikaste和特勒馬庫斯的兒子,他被說成是法院 歌手---- SORETED ------- Epikaste他他特勒馬庫斯和兒子的可以在法庭 說歌手到當時是
我在哪裏犯了一個錯誤?謝謝 !
你的輸出首先顯示了開頭大寫字母,然後以小寫的那些話。不看你的代碼我想你忘了大寫和小寫字母的不同代碼:) – sotix
也類名應該以大寫字母開頭 – sotix
@sotix謝謝你的擡頭! –