0

すべてを並べ替える並べ替え関数を作成しましたが、2つの単語の間にスペースがある場合は、最初にスペースを並べ替えて最後の文字列要素を削除します。なぜこれが発生するのでしょうか。String.trim()メソッドを使用して空白を削除しようとしましたが、機能しませんでした。ヘルプが必要です

private void SortStringsActionPerformed(java.awt.event.ActionEvent evt) {                                            
         // TODO add your handling code here:
         String str = TextArea.getText();

     String[] words = str.split(" ");

        int length = words.length;
    String temp; 
    for(int i=0; i<=length-1; i++){
            for(int j=0; j <length-1;j++){
            if(words[i].compareToIgnoreCase(words[j]) == 0 ){}
            else if (words[i].compareToIgnoreCase(words[j]) < 0){   
                                temp = words[i].trim();
                words[i] = words[j].trim();
                words[j] = temp;
            }else{} 
        }
    }
        /*
    String str2="";
    for (int i=0; i < length-1; i++) {
            str2+=words[i]+" ";
        }
        */
        StringBuilder str2 = new StringBuilder();
        for(int i=0; i<length-1; i++) {
            str2.append(words[i]).append(" ");
        }
        TextArea.setText(str2.toString());

    }                            
4

3 に答える 3

1

「何でも」ソートしたい場合は、java.utils.Collectionsクラスを使用してください。Comparableを実装する要素の並べ替え方法があります。

static <T extends Comparable<? super T>> void sort(List<T> list)

または、独自のコンパレータを指定できます。

static <T> void sort(List<T> list, Comparator<? super T> c)

独自のソートコードを記述してデバッグするよりも簡単です。

次に例を示します:http ://www.vogella.com/blog/2009/08/04/collections-sort-java/

于 2013-01-22T11:16:48.910 に答える
1

まず第一に、使用するのではなく、使用するのが最善for(int i=0; i<=length-1; i++)ですfor(int i = 0; i < length; i++)

これは、最後の要素が削除される理由でもあります-for(int i=0; i<length-1; i++)代わりに使用しましたfor(int i=0; i<length; i++)

編集:そしてあなたが使用できるスペースを無効にするには:TextArea.setText(str2.toString().trim());

于 2013-01-22T12:27:01.400 に答える
0

車輪の再発明をする必要はありません

于 2013-01-22T11:17:42.913 に答える