-1

Javaでアルファベットを並べ替える簡単な方法はありますか?

a < aa < aaa < aaaa
a < b < ab < ba < aba

String.compareTo メソッドは、以下の形式でデータを並べます。したがって、私の目的を果たさない a < aa < aaa < b < ab < ba

親切に助けて!!!

4

3 に答える 3

6

を使用してそれを行うことができますComparator

これをチェックして:

import java.util.Comparator;
public class SComparator implements Comparator<String> {

    @Override
    public int compare(String s1, String s2) {
        if(s1.length() != s2.length()){
            return s1.length() - s2.length();
        }
        return s1.compareTo(s2);
    }

}

次に、次のように使用できます。

ArrayList<String> L = new ArrayList<String>();
// ...
Collections.sort(L, new SComparator());
于 2013-08-27T07:53:51.513 に答える
1

文字列の長さを比較するコンパレータを使用し、compareTo を一緒に使用できます。

        public int compare( String o1, String o2 )
        {
            if( o1.length() > o2.length() )
            {
                return 1;
            }
            else if( o1.length() < o2.length() )
            {
                return -1;
            }
            return o1.compareTo( o2 );
        }
于 2013-08-27T07:55:23.257 に答える
0

この問題は、並べ替えによっても解決できます。

String[] words = {"going", "went", "go", "how", "jam"};    
Arrays.sort(arr);

出力:

go < going < how < jam < went
于 2013-08-28T15:16:03.990 に答える