мне нужна правильная сортировка + коллекция, которая правильно сортирует все европейские языки (включая, например, чешские символы. 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
Правильная сортировка на Java для всех языков (включая, например, CS) ⇐ JAVA
Программисты JAVA общаются здесь
1741623452
Anonymous
мне нужна правильная сортировка + коллекция, которая правильно сортирует все европейские языки (включая, например, чешские символы. D, ď, E, E, ě, F, G, H, CH, I, í, J, K, L, M, N, ň, O, ó, P, (q), R, ř, S, š, T, ť, [b] U, ú, ů [/b], v, w), (x), y, z, z, z, zermed zerd zerd . Вы на самом деле разные символы ...
[b] u, ú, ů [/b]
В настоящее время я нахожу локали для кода языка и страну ЕС и используя:
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79497624/correct-sorting-in-java-for-all-languages-including-e-g-cs[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия