ListView
我有一个想要排序的 Android 。目前我正在使用Collections.sort
which 按字母顺序排列就好了。
但是,我想更进一步,移动领先的“the”。是否有内置的 Java 或 Android 方法可以处理这个问题?
如果没有,我需要什么代码?
与在比较字符串之前去除前导sCollections.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