Объединить алфавитный и естественный порядок (он же сортировка пользователя)

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

Я хочу отсортировать списокИмена файлов (и файлы в основном были названы в честь людей и / или адресов), которые были предоставлены пользователями, иногда на разных языках (в основном на немецком языке, с небольшим количеством французского и итальянского языка, смешанным здесь и там, и редко с любым другим западным языком) ,

Идея состоит в том, чтобы представить этот список упорядоченным способом, который (немецкие) пользователи обычно считают нормальным. Это означает, что порядок должен следоватьjava.text.Collator for Locale.GERMAN, но в то же время ожидается сделать исключение для чисел в строке, поэтому10" идет после "2".

Я нашел код для естественной сортировки в сети, но он основан на сравнении символов за символами (а Collator нене поддерживает это). Я мог бы взломать что-нибудь с помощью подстроки, но внутри компаратора это неМне кажется, самая яркая идея - создать несколько подстрок при каждом вызове сравнения.

Любые идеи, как реализовать это эффективно (как во время выполнения иреализация время), или еще лучше - проверенная и готовая к использованию реализация?

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

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