Java 如何进行字母数字排序

Java 如何进行字母数字排序,java,mysql,arrays,jakarta-ee,oracle-adf,Java,Mysql,Arrays,Jakarta Ee,Oracle Adf,我正在尝试对表中包含字母数字值的列进行排序,但无法按预期对它们进行排序。一些值如下所示。 秦某。F.1#1.1 秦某。F.1#1.10 秦某。F.1#1.2 秦某。F.1#1.20 秦某。99F.1#1.1 秦某。88F.1#1.19 秦某。72F.1#1.1 4444.80 4444.8 所需结果应为 秦某。F.1#1.1 秦某。F.1#1.2 秦某。F.1#1.10 秦某。F.1#1.20 秦某。72F.1#1.1 秦某。88F.1#1.19 秦某。99F.1#1.1 4444.8 4444

我正在尝试对表中包含字母数字值的列进行排序,但无法按预期对它们进行排序。一些值如下所示。
秦某。F.1#1.1
秦某。F.1#1.10
秦某。F.1#1.2
秦某。F.1#1.20
秦某。99F.1#1.1
秦某。88F.1#1.19
秦某。72F.1#1.1
4444.80
4444.8

所需结果应为

秦某。F.1#1.1
秦某。F.1#1.2
秦某。F.1#1.10
秦某。F.1#1.20
秦某。72F.1#1.1
秦某。88F.1#1.19
秦某。99F.1#1.1
4444.8
4444.80

它应该总是从左到右计数,检查数字和字符串,并对值进行排序。任何信息都会有帮助


谢谢你

你有几个选择:
1) 编写自己的自定义排序过程并使用它。

2) 将字符串拆分为两个数字列。您可以通过为点前零件和点后零件创建两个瞬态字段来实现。然后使用groovy拆分值。然后您只需按第一列排序,然后按第二列排序。

3) 将字符串转换为数字表示形式,尽管您应该知道点后面的数字可以接受的限制。因此,如果点后的数字只能有3位数字,则应将其转换为类似:
1.001而不是1.1,1.01而不是1.10,依此类推


ps:这不是真正的adf或java问题,它在任何语言中都很常见。

不确定您使用的排序标准是什么,但是1.2怎么可能在1.10之前出现?基本上它应该像这样对待数字1.1>1.2>1.3……1.10。但我也有同样的疑问,但这就是要求。他们在寻找这个结果。所以,让我知道我们是否至少可以得到closuer结果,或者我们可以使用的任何技巧来获得所需的值。表中总共有2500个值。