У меня есть переменная строка, которая может содержать любой символ юникода. Одним из этих символов Юникода является 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, хотя ответ, упоминающий, также может быть правильным.