我正在尝试对 Android ListView 对象进行排序。我目前正在使用以下代码:
// Sort terms alphabetically, ignoring case
adapter.sort(new Comparator<String>() {
public int compare(String object1, String object2) {
return object1.compareToIgnoreCase(object2);
};
这对我的列表进行排序,忽略大小写。但是,最好也忽略标点符号。例如:
c.a.t.
car
cat
应该排序如下:
car
c.a.t.
cat
(两只猫(cat 或 c.a.t.)中的哪一只排在第一位实际上并不重要,只要它们排在彼此旁边即可)。
有没有简单的方法来解决这个问题?我认为解决方案将涉及仅从字符串中提取字母数字字符,然后比较这些字符,然后将它们返回到之前的状态,并再次包含非字母数字字符。
最佳答案
比较时,去掉不关心的字符
public int compare(String str1, String str2) {
String remove = "[\\.:',]"; // change this to all to characters to remoce
return str1.replaceAll(remove, "").compareToIgnoreCase(object2.replaceAll(remove, ""));
};
关于java - 忽略标点符号的排序 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396540/