gpt4 book ai didi

java - 对可能包含数字的字符串进行排序

转载 作者:IT老高 更新时间:2023-10-28 11:53:28 25 4
gpt4 key购买 nike

我需要编写一个比较字符串的 Java Comparator 类,但是有一个转折点。如果它要比较的两个字符串在字符串的开头和结尾相同,并且中间不同的部分是整数,则根据这些整数的数值进行比较。例如,我希望以下字符串按显示顺序结束:

  • 啊啊
  • bbb 3 cc
  • bbb 12 立方厘米
  • ccc 11
  • ddd
  • eee 3 ddd jpeg2000 eee
  • eee 12 ddd jpeg2000 eee

如您所见,字符串中可能还有其他整数,所以我不能只使用正则表达式来分解任何整数。我正在考虑从头开始遍历字符串,直到找到不匹配的位,然后从末尾走进直到找到不匹配的位,然后将中间的位与正则表达式“[0-9]+”,如果比较,则进行数值比较,否则进行词法比较。

有没有更好的办法?

更新我认为我不能保证字符串中的其他数字(可能匹配的数字)周围没有空格,或者不同的数字确实有空格.

最佳答案

The Alphanum Algorithm

来自网站

“人们用数字排序字符串的方式与软件不同。大多数排序算法都会比较 ASCII 值,这会产生与人类逻辑不一致的排序。以下是解决方法。”

编辑:这是 Java Comparator Implementation 的链接从那个网站。

关于java - 对可能包含数字的字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/104599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com