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

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

Сообщение Anonymous »

мне нужна правильная сортировка + коллекция, которая правильно сортирует все европейские языки (включая, например, чешские символы. 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, z, zermed zerd zerd . Вы на самом деле разные символы ...
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>

обновление - jdoodle
https://www.jdoodle.com/embed/v1/45a4a4a323555555661ty. Class = "Lang-Java PrettyPrint-Override">import java.text.Collator;
import java.util.*;

public class CzechCollationTest {
public static void main(String[] args) {
Locale locale = new Locale("cs");
List words = Arrays.asList(
"Účetnictví", "Udržitelná", "Uhlovodíky"
);
test(words, locale, null, "Without strength");
test(words, locale, Collator.PRIMARY, "With PRIMARY");
test(words, locale, Collator.SECONDARY, "With SECONDARY");
test(words, locale, Collator.TERTIARY, "With TERTIARY");
test(words, locale, Collator.IDENTICAL, "With IDENTICAL");
}

private static void test(List list, Locale locale, Integer strength, String description) {
// Avoid mutating the existing list.
List clone = new ArrayList(list);
Collator collator = Collator.getInstance(locale);
if (strength != null) {
collator.setStrength(strength);
}
clone.sort(collator);
System.out.println(description + ":" + String.join(", ", clone));
}
}

https://www.jdoodle.com/embed/v1/45a4a4a3232555661
Without strength:Úč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


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

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

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

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

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

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