Правильная сортировка на Java для всех языков (включая, например, CS)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Правильная сортировка на Java для всех языков (включая, например, CS)

Сообщение Anonymous »

мне нужно правильно сортировка + коллекция, которая правильно сортирует все европейские языки (включая, например, чешские символы.
Я пробовал различные подходы, и это все еще испортило акцентированное U. č, D, ď, E, E, ě, F, G, H, CH, I, í, J, K, L, M, N, ň, O, ó, P, (q), R, ř, S, š, T, ť, U, ú, ů , v, (w), (x), y, z, z, zable
, (w), (x), y, z, z, zable , v, w), (x), y, z, z. Акцентированные u на самом деле разные символы ...
u, ú, ů
В настоящее время я нахожу локали для кода языка и страну ЕС и использует:
collator = Collator.getInstance(selectedLocale);

// Set appropriate strength (PRIMARY or SECONDARY)

collator.setStrength(Collator.PRIMARY);

collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
< /code>
Кроме того, я пробую дополнительную библиотеку: < /p>

com.ibm.icu
icu4j
74.2

< /code>
К сожалению, я получаю неправильные результаты ... < /p>
e.g. Я получаю: < /p>
"účetnictví",
"udržitelná", < /p>
и я должен получить обратное ... < /p>
Использование Java 17 ... < /p>

Обновление
Вот результаты некоторых экспериментов:
With PRIMARY and CANONICAL_DECOMPOSITION
[Účetnictví, Udržitelná, Uhlovodíky]

With SECONDARY and CANONICAL_DECOMPOSITION
[Účetnictví, Udržitelná, Uhlovodíky]

With TERTIARY and CANONICAL_DECOMPOSITION
[Účetnictví, Udržitelná, Uhlovodíky]

With IDENTICAL and CANONICAL_DECOMPOSITION
[Účetnictví, Udržitelná, Uhlovodíky]

With PRIMARY
[Účetnictví, Udržitelná, Uhlovodíky]

With SECONDARY
[Účetnictví, Udržitelná, Uhlovodíky]

With TERTIARY
[Účetnictví, Udržitelná, Uhlovodíky]

With IDENTICAL
[Účetnictví, Udržitelná, Uhlovodíky]
< /code>
код:
(примечание, я удалил значения и сохранил только ключи): < /p>
List sortedPairs;
Collator collator;
try{

Locale selectedLocale = getAvailableLocale(pLang);
if(selectedLocale == null){
selectedLocale = new Locale(pLang);
}

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
//collator.setStrength(Collator.PRIMARY);
//collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("Without stringth or decomposition");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.PRIMARY);
collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With PRIMARY and CANONICAL_DECOMPOSITION");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.SECONDARY);
collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With SECONDARY and CANONICAL_DECOMPOSITION");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.TERTIARY);
collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With TERTIARY and CANONICAL_DECOMPOSITION");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.IDENTICAL);
collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With IDENTICAL and CANONICAL_DECOMPOSITION");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.PRIMARY);
//collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With PRIMARY");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.SECONDARY);
//collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With SECONDARY");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.TERTIARY);
//collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With TERTIARY");
System.out.print(sortedPairs);

//--------------------------------------------

collator = Collator.getInstance(selectedLocale);
// Set appropriate strength (PRIMARY or SECONDARY)
collator.setStrength(Collator.IDENTICAL);
//collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);

sortedPairs = getSortedEntries(finalTopics, collator);

System.out.println("With IDENTICAL");
System.out.print(sortedPairs);

//--------------------------------------------

}catch(Exception e){
e.printStackTrace();
sortedPairs = getSortedEntries(finalTopics, Collator.getInstance(Locale.ROOT));
}
....

private static Locale getAvailableLocale(String pLang) {
Locale selectedLocale = null;
Locale[] availableLocales = Locale.getAvailableLocales();
for (Locale locale : availableLocales) {
if (locale.getLanguage().toLowerCase().equals(pLang.toLowerCase())) {
selectedLocale = locale;
if(locale.getCountry()!=null){
return selectedLocale;// Print Czech locale variations
}
}
}
return selectedLocale;
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ing-e-g-cs
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Правильная сортировка на Java для всех языков (включая, например, CS)
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Правильная сортировка на Java для всех языков (включая, например, CS)
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Правильная установка с помощью scipy ODR, включая ошибки?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Сортировка массива Swift VS сортировка Java (управление неизвестными случаями)
    Anonymous » » в форуме JAVA
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Почему нет виртуальной машины для других языков, в отличие от Java? [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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