есть ли способ получить все символы, эквивалентные данному символу в локали - PullRequest
1 голос
/ 14 марта 2012

Я изучаю пакет icu для java.То, что я ищу в качестве способа передачи заданной локали и заданной кодовой точки и получения списка символов, которые являются «эквивалентными».

Я смотрю на PACIX charclass для [= e =] по-французски,Что все символы эквивалентны по-французски «е»?e, é, è и ê

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

ПРИМЕЧАНИЕ: похоже, этообратная сторона другого вопроса.

Энди

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Это зависит от того, что вы подразумеваете под эквивалентом, но вы можете использовать Collator, чтобы увидеть, какие символы будут отсортированы вместе. Вы можете получить коллатер по умолчанию из Locale:

Collator.getInstance(Locale.FRANCE);

Приведение этого к RuleBasedCollator позволяет вам:

((RuleBasedCollator)Collator.getInstance(Locale.FRANCE)).getRules();

Который покажет вам таблицу эквивалентности.

1 голос
/ 15 марта 2012

Это может быть на самом деле то, что вы хотите: http://icu -project.org / apiref / icu4j / com / ibm / icu / text / CanonicalIterator.html

...