2012-11-15 70 views
0

可能重複:
Sort on a string that may contain a number如何自然地將字符串與數字排序?

我實現自定義的家庭作業排序算法,我想它與附着在正確的順序最終數字的字符串進行排序。 ..現在,「Book1」在「Book10」之後出現。讓我選擇任何特殊的排序

我使用String.compareTo()來獲取訂單,但我沒有看到一個版本的compareTo(的)。

謝謝。

+4

您需要爲此編寫自己的比較器。 –

+1

你需要實現一個自定義的比較器,它將你的字符串分解成你想要比較的部分,就好像它們是字段一樣。 –

回答

0

你必須寫自己實現Comparator是:

  • 拆分導致從尾隨數字字符串。
  • 比較前導字符串是否相等。
  • 如果相等,比較尾數爲相等。
+0

爲什麼只比較平等? –

+0

因爲如果字符串不相等,您可以使用+1或-1從比較器返回。 –

+0

這就是我說的原因。你不僅需要比較平等。但'<' and '>'也。那麼這真的不是一個問題。我剛纔指出。 :) –