Сортировать по строке, которая может содержать число

Мне нужно написать класс компаратора Java, который сравнивает строки, однако с одним поворотом. Если две строки, которые он сравнивает, одинаковы в начале и конце строки одинаковы, а средняя часть, которая отличается, представляет собой целое число, то сравните на основе числовых значений этих целых. Например, я хочу, чтобы следующие строки заканчивались в том порядке, в котором они показаны:

aaa bbb 3 ccc bbb 12 ccc ccc 11 ddd eee 3 ddd jpeg2000 eee eee 12 ddd jpeg2000 eee

Как вы можете видеть, в строке могут быть и другие целые числа, поэтому я не могу просто использовать регулярные выражения для выделения любого целого числа. Я думаю о том, чтобы просто пройтись по струнам с самого начала, пока не найду бит, который не соответствует, затем войти с конца, пока не найду бит, который не соответствует, и затем сравнить бит по центру с регулярное выражение «[0-9] +», и если оно сравнивается, то выполняется числовое сравнение, в противном случае выполняется лексическое сравнение.

Есть ли способ лучше?

Update Я не думаю, что могу гарантировать, что другие числа в строке, те, которые могут совпадать, не имеют пробелов вокруг них или что те, которые отличаются, имеют пробелы.

Ответы на вопрос(18)

Ваш ответ на вопрос