У меня есть переменная строка, которая может содержать любой символ юникода. Одним из этих символов Юникода является han 𩸽.
Дело в том, что этот символ "han" имеет "𩸽".length() == 2, но записывается в строку как один символ.
Учитывая приведенный ниже код, как бы я перебирал все символы и сравнивал каждый из них, учитывая тот факт, что он может содержать один символ с длиной больше 1?
for ( int i = 0; i < string.length(); i++ ) {
char character = string.charAt( i );
if ( character == '𩸽' ) {
// Fail, it interprets as 2 chars =/
}
}
EDIT:
Этот вопрос не дублируется. Это спрашивает, как итерации для каждого символа String при рассмотрении символов, содержащих .length() > 1 (символ не как тип char, а как представление написанного символа). Этот вопрос не требует предварительного знания того, как итерации по кодовым точкам Unicode строки Java, хотя ответ, упоминающий, также может быть правильным.