0

ListView並べ替えたいAndroidがあります。現在Collections.sort、アルファベット順で問題なく使用しています。

しかし、私はさらに一歩進んで、先頭の「the」を動かしたいと思います。これを処理できる組み込みのJavaまたはAndroidメソッドはありますか?

そうでない場合、私が必要とするコードは何ですか?

4

1 に答える 1

9

文字列を比較する前に先頭のを削除Collections.sort()するカスタムで使用します。Comparator<String>"The"

List<String> foo = /* init */;

Comparator<String> ignoreLeadingThe = new Comparator<String>() {
    @Override public int compare(String a, String b) {
        // TODO check for nulls?

        // (?i) makes the match case-insensitive
        a = a.replaceAll("(?i)^the\\s+", "");
        b = b.replaceAll("(?i)^the\\s+", "");

        // TODO use compareToIgnoreCase() instead?
        return a.compareTo(b);
    }
};

Collections.sort(foo, ignoreLeadingThe);

デモ: http: //ideone.com/6hogi

于 2012-08-29T14:37:05.533 に答える