Разделение строки в Java и проблема с пустыми значениями

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
Возникает типичная проблема при работе с методом split() в Java. Данный метод используется для разделения строки на подстроки, используя указанный разделитель.
Возникает типичная проблема при работе с методом split()
в Java. Данный метод используется для разделения строки на подстроки, используя указанный разделитель. Однако, когда встречается два разделителя подряд, между которыми нет символов, ожидается, что метод вернет пустую строку. Но на практике это не всегда происходит.
Рассмотрим пример:
String data = "5,6,7,,8,9,,";
String[] split = data.split(",");
System.out.println(split.length);
В этом примере разделителем является запятая. Ожидается, что строка будет разделена на 8 подстрок: [5,6,7,EMPTY,8,9,EMPTY,EMPTY]. Однако, если запустить этот код, он выведет значение 6.
Проблема заключается в том, что метод split()
в Java по умолчанию игнорирует пустые строки в конце массива. Это происходит потому, что внутренне split()
использует регулярные выражения, и при разделении строки оставляет пустые строки только в начале и середине массива.
Чтобы исправить это, можно передать второй аргумент в метод split()
. Этот аргумент указывает на количество возвращаемых строк. Если передать отрицательное число, метод вернет все строки, включая пустые.
Итак, исправленный код будет выглядеть так:
String data = "5,6,7,,8,9,,";
String[] split = data.split(",", -1);
System.out.println(split.length);
Теперь выводом этого кода будет число 8, которое соответствует ожидаемому количеству подстрок, включая пустые.
Добавить комментарий