Как обойти строчку?

В языке Java строки хранятся в кодировке UTF-8. В ней один символ храниться в code point, который может состоять из одного или двух значений char (то есть занимающих в памяти столько же места, сколько и одна переменная типа char). То есть, для ответа на вопрос нужно понимать, строка состоит из значений типа char или code point.

Для обхода строку типа char можно использовать метод charAt(), извлекая на каждой итерации по одному символу. Также можно использовать метод toCharArray(), который вернёт массив, инициализированный символами строки. Этот метод работает медленнее, зато в результате вы получаете массив, а значит произвольный доступ к любому его элементу.

Обрабатывать суррогатные пары нужно вручную, с помощью специальных методов, имеющихся в классе Character. Также можно использовать методы codePointAt() и codePointBefore(). У них в качестве параметра требуется указать индекс массива типа char. Выдают эти функции значения code point типа int.

В восьмой версии Java появились методы chars() и codePoints(), с помощью которых легко осуществлять обход. Эти функции выдают IntStream, который состоит из символов char и code point, соответственно. Носителем потока является строка. Копирование массива не нужно.

Проверьте себя после изучения темы

Бесплатный бот с тестами и практическими заданиями по Kotlin.

  • 22 бесплатных урока
  • Тесты к каждому уроку (всего 220 вопросов)
  • Задачи в рамках практики KotlinSprint (120 задач) и курсовой проект «Телеграм бот для изучения иностранных слов»
Начать обучение

Вам также может быть интересно

Узнать подробнее
Курс AndroidSprint

Глубокое обучение Android разработке с 0 до получения оффера. Только персональная практика с гарантией получения продуктового опыта.

Узнать подробнее
Узнать подробнее
Практикум по Kotlin

Изучение Котлин с 0 для профессиональной разработки. Личный ментор и разбор кода задач через git-flow.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Kotlin разработке

Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.

Узнать подробнее
Узнать подробнее
Onboarding в разработку

Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь

Узнать подробнее
Узнать подробнее
Обучающий Kotlin телеграм бот (с тестами)

Ваш основной инструмент для изучения основ языка. Бесплатные тесты и практика внутри.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Android разработке

Самостоятельное обучение разработке Андроид приложений. Понятные видеоуроки с разжеванными примерами.

Узнать подробнее
Узнать подробнее
Курс по UI/Unit тестированию

Для ручных тестировщиков, которые готовы осваивать автотесты с использованием актуального стека технологий. [в разработке]

Узнать подробнее
Узнать подробнее
Обучающий Android телеграм бот (с тестами)

Бесплатные теоретические тесты для самопроверки. А также информер на практических спринтах по Android.

Узнать подробнее