Java中的自然排序顺序字符串比较 – 是内置的吗?

参见英文答案 > Sort on a string that may contain a number                                    19个
我想要一些保留自然排序order1的字符串比较函数. Java中是否有这样的内容?我在String class中找不到任何东西,Comparator class只知道两个实现.

我可以自己动手(这不是一个非常难的问题),但如果我不需要,我宁愿不重新发明*.

在我的具体情况下,我有我想要排序的软件版本字符串.所以我希望“1.2.10.5”被认为大于“1.2.9.1”.

1通过“自然”排序顺序,我的意思是它将字符串与人类比较它们的方式进行比较,而不是“ascii-betical”排序顺序只对程序员有意义.换句话说,“image9.jpg”小于“image10.jpg”,“album1set2page9photo1.jpg”小于“album1set2page10photo5.jpg”,“1.2.9.1”小于“1.2.10.5”

解决方法:

在java中,“自然”顺序意义是“词典”顺序,因此核心中没有像您正在寻找的那样实现.

有开源实现.

这是一个:

NaturalOrderComparator.java

请务必阅读:

Cougaar Open Source License

我希望这有帮助!

上一篇:Java 基础 - Comparable和Comparator接口区别


下一篇:java – 按属性排序自定义对象的ArrayList