我有一个字符序列列表。我需要按照感觉自然的顺序对它们进行排序。我正在用 Java 编码。
我最初的想法是使用 Collections.sort()
。但我认为这种方法遵循分隔小写和大写文本的 ASCII 顺序。这不是自然流。
为了定义“自然排序”,我进行了快速搜索并找到了 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 - 在 Java 中不区分大小写的字母数字数据(和特殊字符)的排序标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549167/