2012-01-09 103 views
8

Guava中有没有Comparator实现来以一种可能包含数字的“自然”方式对字符串进行排序?
如:
“8”
“9”
“10”
是否有比较器“自然”对可能包含数字的番石榴进行排序,番石榴?

我发现这方面的一些有趣的链接,但是看起来没有什么番石榴做的工作.. 。

的StackOverflow:"Sort on a String that may contain a number"
的一个很好的解释:The Alphanum Algorithm

+3

'Alphanum算法'有什么问题?这似乎是你想要的。为什么你需要“番石榴”?只需使用'Collections.sort(list,comparator);' – Bohemian 2012-01-09 20:25:17

+0

“Alphanum算法”没有错,我不想重新发明轮子(如果有轮子)! 'Collections.sort(list,comparator)'需要'Comperator'我是要求的。 – Chriss 2012-01-09 20:29:33

+1

正在下载[预写入的java](http://www.davekoelle.com/files/AlphanumComparator.java)(尽管非泛型)真的“重新发明轮子”?也许,但它肯定是“低垂的果实”。 – Bohemian 2012-01-09 20:33:56

回答

4

不,在番石榴中没有任何内置的实现这样的比较器...似乎是太狭隘适用于我的东西。只需编写自己的实现或使用已经链接的现有实现之一即可。

+0

作为一个Guava开发者,我们不会做任何相当狭隘的事情。 – 2012-01-10 16:07:53

+3

好吧,我认为这是一个常见的用例,必须有一个解决方案已经在番石榴 – Chriss 2012-01-11 18:43:22