- какая-то буква из ASCII (обычный char), а для всех прочих символов - '#'.
Например, под А имеем А (латиница), Ą, и прочие латинские буквы между А и B, а под Z должны быть Z, Ź, Ż и тд.
Для всех чисел, знаков, букв не между ASCII A и последней Z подобной буквой - дефолтный чар #, соответсвенно, кириллическая А попадает под #.
Алгоритм простой, с помощью java.text.Collator
char defaultChar = '#';
char labelChar = 'E';
for (char trackChar = 'A'; trackChar <= 'Z'; trackChar++) {
int result = collator.compare(String.valueOf(labelChar), String.valueOf(trackChar));
if (result < 0) {
return trackChar != 'A' ? --trackChar : defaultChar;
} else if (result == 0) {
return trackChar;
}
}
return defaultChar;
Баг достаточно очевиден, не с чем сранивать что идет после Z.
Может кто подскажет, как можно сравнить чтобы буквы, похожие на Z, например, Ż, Ź, попадали под категорию Z?
сделать препроцессинг с руками забитой мапой синонимов?
Обсуждают сегодня