Спецификация Unicode имеет официальное стабильное имя для каждого кода. Вы можете воспользоваться этим, просмотрев «LATIN LETTER SMALL CAPITAL c», используя метод Character.codePointOf (String) .
public static String translate(String s) {
int len = s.length();
Formatter smallCaps = new Formatter(new StringBuilder(len));
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (c >= 'A' && c <= 'Z' && c != 'X') {
smallCaps.format("%c",
Character.codePointOf("LATIN LETTER SMALL CAPITAL " + c));
} else {
smallCaps.format("%c", c);
}
}
return smallCaps.toString();
}
I поместите && c != 'X'
в тест, потому что в настоящее время нет символа LATIN LETTER SMALL CAPITAL X, хотя было предложено .
Обратите внимание, что некоторые небольшие заглавные коды могут быть не во внутренней копии Java таблицы данных символов Unicode. Я обнаружил, что мне нужно использовать Java 12 или более позднюю версию, чтобы распознать их все.