我想排序一个ArrayList<String>
但问题是我的母语字符 - 我的字母表是这样的:a, ą, b, c, č, d, e, f ... z, ž
。正如你所看到的z
字符是从第二个字符,并且ą
是字母表中的第二个,所以在我排序我的数组后排序不正确。我所有的母语字符都移动到数组的末尾。例如:Java数组排序UTF-8
package lt;
import java.util.ArrayList;
import java.util.Collections;
public class test {
public static void main(String[] args) {
List<String> items = new ArrayList<>();
items.add("bbc");
items.add("ąbc");
items.add("abc");
items.add("zzz");
System.out.println("Unsorted: ");
for(String str : items) {
System.out.println(str);
}
Collections.sort(items);
System.out.println();
System.out.println("Sorted: ");
for(String str : items) {
System.out.println(str);
}
}
}
输出:
Unsorted:
bbc
ąbc
abc
zzz
Sorted:
abc
bbc
zzz
ąbc
应该是:
Sorted:
abc
ąbc
bbc
zzz
查看[this question](http://stackoverflow.com/questions/4225523/collator-doesnt-sort-right-for-given-locale) – 2012-02-13 13:27:13