2012-01-09 65 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