Как взять первый элемент строки java
Перейти к содержимому

Как взять первый элемент строки java

Как получить первый символ строки

Мне нужно отобразить первый символ строки. Самый простой код для этого:

Но это не работает, если символ не умещается в 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’.

Обращение к символам строки

user avatar

Вот тут также можете ознакомится со всеми основными операциями над строками.

user avatar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *