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

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

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

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

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

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

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

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