对可能包含数字的字符串进行排序
我需要编写一个Java Comparator类来比较Strings,但是有一个转折。如果它比较的两个字符串在字符串的开头和结尾是相同的,并且不同的中间部分是整数,则根据这些整数的数值进行比较。例如,我希望以下字符串以它们显示的顺序结束:
AAA
bbb 3 ccc
bbb 12 ccc
ccc 11
DDD
eee 3 ddd jpeg2000 eee
eee 12 ddd jpeg2000 eee
如您所见,字符串中可能还有其他整数,因此我不能只使用正则表达式来分解任何整数。我正在考虑从一开始就走绳子,直到找到一点不匹配,然后走到最后,直到找到一个不匹配的位,然后比较中间的位到正则表达式“[0-9] +”,如果比较,则进行数值比较,否则进行词法比较。
有没有更好的办法?
更新我不认为我可以保证字符串中的其他数字,可能匹配的数字,周围没有空格,或者不同的数字确实有空格。
蝴蝶刀刀
扬帆大鱼