Мне нужно написать класс Java Comparator, который сравнивает строки, однако с одним поворотом. Если две сравниваемые строки одинаковы в начале и конце, а средняя часть, которая отличается, является целым числом, то сравните на основе числовых значений этих целых чисел. For example, I want the following strings to end up in the order they're shown:
[*]aaa
[*]bbb 3 ccc
[*]bbb 12 ccc
[*]ccc 11
[*]ddd
eee 3 ddd jpeg2000 eee < /li>
eee 12 ddd jpeg2000 eee < /li>
< /ul>
Как вы можете видеть, в строке могут быть другие целые числа, поэтому я не могу просто использовать регулярные выражения, чтобы разорвать любые целые числа. Я думаю о том, чтобы просто ходить по струнам с самого начала, пока я не найду немного, что не совпадает, а затем иду с конца, пока не найду немного, что не совпадает, а затем сравнивая бит в середине с регулярным выражением "[0-9]+", и если оно сравнится, то прохождение численного сравнения, в противном случае, проводя лексическое сравнение. Думаю, я могу гарантировать, что другие цифры в строке, те, которые могут соответствовать, не имеют места вокруг них, или что те, которые отличаются, имеют места.
Подробнее здесь: https://stackoverflow.com/questions/104 ... n-a-number