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

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сортировка по строке, которая может содержать число

Сообщение Anonymous »

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

Есть ли лучший способ?< /p>

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

Подробнее здесь: https://stackoverflow.com/questions/104 ... n-a-number
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»