我有一個字符序列列表。我需要按照自然的順序排列它們。我用Java編碼。 我最初的想法是使用Collections.sort()
。但我認爲這種方法遵循分隔小寫和大寫文本的ASCII順序。這不是一個自然的流程。在Java中使用字母數字數據(和特殊字符)對大小寫不敏感的數據進行排序
試圖定義「自然排序」我做了一個快速搜索,發現似乎解決這個問題的NISO TR03-1999標準。
所以我想我需要一種方法來使用該標準中定義的算法進行排序。 Java中有這樣的功能嗎?或者我需要自己實現它?
我在這裏忽略了什麼嗎?
過去有沒有人有類似的問題?你是怎麼處理的 ?
下面是一個代碼示例測試Collections.sort():
List<String> list = new ArrayList<String>();
list.add("z");
list.add("a");
list.add("Z");
list.add("A");
list.add("z 1");
list.add("a 1");
list.add("Z 1");
list.add("A 1");
list.add(" space");
list.add("!");
list.add(".");
list.add(";");
list.add("\\");
list.add("/");
list.add("+");
list.add("1");
list.add("2");
list.add("10");
list.add("1abc");
list.add("2abc");
list.add("10abc");
Collections.sort(list);
for (String string : list)
System.out.println(string);
在java 8中,使用:Collections.sort(list,String :: compareToIgnoreCase); – Kachna