![]() |
1
51
在Java中,“自然”顺序含义是“词典编纂”的顺序,所以在核心中没有实现,就像你正在寻找的。 有开放源代码实现。 这里有一个: 请务必阅读: 希望这有帮助! |
![]() |
2
9
我已经测试了其他三个Java实现,发现它们的工作略有不同,但没有一个是我所期望的。
两个
AlphaNumericStringComparator
和
AlphanumComparator
不要忽略空白,这样
另一方面
NaturalOrderComparator
不仅忽略空白,而且忽略所有前导零,因此
关于绩效 字母数字字符串比较器 比其他两个慢~x10。 |
![]() |
3
8
String实现可比性,这就是Java中的自然排序(使用可比较的接口进行比较)。可以使用集合或数组类将字符串放入树集或排序。 但是,在您的案例中,您不希望“自然排序”,而是真正需要一个定制的比较器,然后您可以在collections.sort方法或采用比较器的array.sort方法中使用它。 就您要在比较器中实现的特定逻辑而言(用点分隔的数字),我不知道任何现有的标准实现,但正如您所说,这不是一个难题。
编辑:在您的评论中,您的链接将使您
here
如果你不介意它是区分大小写的,这是一个不错的工作。这是修改后的代码,允许您在
|
![]() |
4
6
看看这个实现。它应该尽可能快,不需要任何正则表达式、数组操作或方法调用,只需要几个标志和许多情况。 这应该对字符串中的任何数字组合进行排序,并正确支持相等的数字,然后继续。
|
![]() |
5
2
如何从字符串中使用split()方法,解析单个数字字符串,然后逐个比较它们?
我没有检查过拐角处的箱子,但是应该可以用,而且很紧凑 |
![]() |
6
1
它确定数字,然后比较。如果它不适用,它会继续。
} |
![]() |
7
0
可能是迟了答复。但我的答案可以帮助其他需要这样一个比较器的人。 我也验证了其他两个比较器。但我的效率似乎比我比较的其他人要低。也试过了易海贴的那个。我的只花了上面提到的100个条目的字母数字数据集的一半时间。
|
![]() |
8
0
使用
添加特定自定义项,如
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 10 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |