Как я прочитал в книге К. Хорстмана, что некоторые символы из UNICODE представляются с дополнением. Так вот меня интересует логическое представление этого. То есть, там имеется ввиду, что каждый символ в строке, к примеру "abc", может быть с дополнением, то при вызове charAt(i) я получу символ, если это символ с дополнением, или получу само дополнение? Если я получу само дополнение, то как мне получить посимвольно всю строку?
Некоторые символы юникода действительно представляются в виде 2 последовательных char,т.к. char вмещает 2 байта и представляет по сути символ из UTF-16 здесь описано как символы юникода кодируются в UTF-16,см. суррогатные пары
то при вызове charAt(i) я получу символ, если это символ с дополнением, или получу само дополнение?
Зависит от того при каком i вызовешь. Если подобных символов несколько,велика вероятность что получишь совсем не то что ожидал,так как сколько-то символов до этого уже было представлено в виде 2 char.
Но допустим это самый левый символ в строке, тогда при вызове charAt(0) и charAt(1), ты получишь первый и второй char суррогатной пары
Сам символ(его Unicode код) можно получить вызвав codePointAt(0),при этом codePointAt(0) вернет то же самое, что и charAt(1)
как мне получить посимвольно всю строку?
"string".codePoints()
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости