Как получить первый символ строки
Мне нужно отобразить первый символ строки. Самый простой код для этого:
Но это не работает, если символ не умещается в 16 битах, например «\uD83D\uDC68» (, U+1F468 ). Возвращается только половина символа и отображается как вопросительный знак.
Это хорошо работает для любого символа, представленного в Юникоде. Однако есть последовательности символов Unicode, отображаемые как один символ. Когда я запускаю для них приведенный выше код, отображается только часть символа, как это происходит для «\uD83D\uDC68\u200D\uD83D\uDCBB» (). В этом случае я хочу, чтобы результатом была вся строка. Как я могу справиться с такими случаями?
Конечно, это должен быть charAt (), моя вина. Но char закодирован в UTF-16 и не может содержать несколько символов. Первый пример должен быть таким:
Другой сложный пример для одного символа — «\u0D23\u0D4D\u200D» (ണ്). Он состоит из двух символов и соединителя нулевой ширины в конце.
Я пробовал использовать библиотеку android.icu , которая происходит от ICU4J , но, к сожалению, она поддерживается только начиная с API 24. Более того, она дает тот же результат, что и второй пример, то есть не объединяет символы если между ними находится соединитель нулевой ширины.
2 ответа
\u200D — это кодовая точка Unicode U+200D ZERO WIDTH JOINER . Если вы хотите извлечь последовательность соединенных кодовых точек, вам придется вручную перебирать строку, пока не встретите несоединенную кодовую точку, например:
Я заметил, что вы используете символ соединитель нулевой ширины (\u200D) для присоединения смайликов , вы можете разделить свой <
Как найти первый и последний символ строки в Java
Учитывая строку str , задача состоит в том, чтобы вывести первый и последний символы строки.
Примеры:
Input: str = “GeeksForGeeks”
Output:
First: G
Last: s
Explanation: The first character of the given string is ‘G’ and the last character of given string is ‘s’.
Input: str = “Java”
Output:
First: J
Last: a
Explanation: The first character of given string is ‘J’ and the last character of given string is ‘a’.
Обращение к символам строки
![]()
Вот тут также можете ознакомится со всеми основными операциями над строками.
![]()
Всё ещё ищете ответ? Посмотрите другие вопросы с метками java строки или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.