ListView
並べ替えたいAndroidがあります。現在Collections.sort
、アルファベット順で問題なく使用しています。
しかし、私はさらに一歩進んで、先頭の「the」を動かしたいと思います。これを処理できる組み込みのJavaまたはAndroidメソッドはありますか?
そうでない場合、私が必要とするコードは何ですか?
文字列を比較する前に先頭のを削除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