参见英文答案 > 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中,“自然”顺序意义是“词典”顺序,因此核心中没有像您正在寻找的那样实现.
有开源实现.
这是一个:
请务必阅读:
我希望这有帮助!