Мне нужно написать класс Java Comparator, который сравнивает строки, но с одним завихрением. Если две строки, которые они сравнивают, одинаковы в начале и конце строки одинаковы, а средняя часть, которая отличается, является целым числом, а затем сравнивается на основе числовых значений этих целых чисел. Например, я хочу, чтобы следующие строки заканчивались, чтобы они показывались:
- ааа
- bbb 3 ccc
- bbb 12 ccc
- ccc 11
- ддд
- eee 3 ddd jpeg2000 eee
- eee 12 ddd jpeg2000 eee
Как вы можете видеть, в строке могут быть и другие целые числа, поэтому я не могу просто использовать регулярные выражения, чтобы вырыть любое целое число. Я думаю о том, чтобы просто идти по строкам с самого начала, пока не нахожу немного, что не соответствует, а затем идет от конца, пока не нахожу немного, что не соответствует, а затем сравнивая бит в середине с регулярное выражение "[0-9] +", и если оно сравнивается, то выполняется цифровое сравнение, в противном случае выполняется лексическое сравнение.
Есть ли лучший способ?
Обновление. Я не думаю, что могу гарантировать, что другие числа в строке, те, которые могут совпадать, не имеют пробелов вокруг них или что те, которые отличаются друг от друга, имеют пробелы.