2012-11-15 25 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 '>'也。那么这真的不是一个问题。我刚才指出。 :) –