だから私はJavaの初心者で、質問があった本から解決していました:
選択したテキストの段落を含む文字列変数を設定するプログラムを作成します。テキストから単語を抽出し、アルファベット順に並べ替えます。並べ替えられた単語のリストを表示します。バブルソートと呼ばれる簡単なソート方法を使用できます。配列を昇順にソートするプロセスは次のとおりです。配列の最初の要素から始めて、連続する要素 (0 と 1、1 と 2、2 と 3 など) を比較します。b. 任意のペアの最初の要素が 2 番目の要素より大きい場合は、2 つの要素を交換します。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);
}
}
}
ただし、ソートされた出力は意図したものではありませんでした!
彼はエピカステとテレマコスの息子だった 彼は宮廷歌手であると言われていました ---- SORETED ------- エピカステ 彼はテレマコスであり、息子の宮廷であると言われていました 歌手は
どこで間違いを犯したのですか?ありがとう !