Преобразование строки в массив строк в Java: подробный гайд

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для преобразования строки в массив строк в Java можно использовать метод split().

Java
Скопировать код
String str = "один,два,три";
String[] arr = str.split(",");

В результате переменная arr преобразуется в массив, включающий элементы {"один", "два", "три"}.

Кинга Идем в IT: пошаговый план для смены профессии

Разделение строк

Для разделения строки на отдельные символы:

Java
Скопировать код
String str = "пример";
String[] arr = str.split("");

Мы получаем массив {"п", "р", "и", "м", "е", "р"}. Важно помнить, что в версиях до Java 8 результат мог включать пустую начальную строку.

Вручную

Можно использовать цикл for для ручного заполнения массива:

Java
Скопировать код
String str = "пример";
String[] arr = new String[str.length()];

for (int i = 0; i < str.length(); i++) {
    arr[i] = String.valueOf(str.charAt(i));
}

Этот подход обеспечивает полный контроль над процессом формирования массива строк.

Использование библиотек

Существуют библиотеки, такие как Guava, которые могут упростить эту задачу:

Java
Скопировать код
String str = "пример";
List<String> list = Lists.charactersOf(str);
String[] arr = list.toArray(new String[0]);

Здесь основные операции осуществляет Guava.

Упрощение с использованием lambda-выражений

С внедрением Java 8 и lambda-выражений код становится ещё более лаконичным:

Java
Скопировать код
String str = "пример";
String[] arr = str.chars()
    .mapToObj(c -> String.valueOf((char) c))
    .toArray(String[]::new);

Применяя потоки Java, мы облегчаем преобразование строки в массив строк.

Регулярные выражения с split()

Для детализированного контроля можно использовать регулярные выражения при применении split():

Java
Скопировать код
String str = "Java 11 & Java 8";
String[] arr = str.split("\\s+&\\s+");

После разделения строка "Java 11 & Java 8" превращается в массив {"Java 11", "Java 8"}.

Учтите доступ к методам

При создании методов важно учитывать их область видимости:

Java
Скопировать код
public String[] stringToArray(String str) {
    return str.split(",");
}

Здесь модификатор public позволяет вызвать этот метод из любой части вашего приложения.

Визуализация

Можно представить процесс как разделение фразы на слова: предложение представляет собой строку, слова – это элементы массива:

Markdown
Скопировать код
Строка: "Java✨Программирование✨Язык"

Разделение приведёт к:

plaintext
Скопировать код
"Java✨Программирование✨Язык" ➡️ ["Java", "Программирование", "Язык"]

Теперь каждое слово является отдельным элементом массива строк.

Markdown
Скопировать код
Массив строк: [ "Java", "Программирование", "Язык" ]

Продвинутые темы

Разделение без использования split()

Если метод split() не подходит, можно попробовать следующий подход:

Java
Скопировать код
String str = "12345";
String[] arr = IntStream.range(0, str.length())
    .mapToObj(i -> String.valueOf(str.charAt(i)))
    .toArray(String[]::new);

Работа со специальными символами

Будьте внимательны при работе со специальными символами в регулярных выражениях:

Java
Скопировать код
String str = "один.два.три";
String[] arr = str.split("\\.");

Точка . в регулярном выражении обозначает "любой символ" и требует экранирования двойными обратными слэшами.

Обработка пустых строк

При обработке пустых строк необходимо проявлять внимательность:

Java
Скопировать код
String str = "";
String[] arr = str.split(",");
if (arr.length == 1 && arr[0].isEmpty()) {
}

Разделение пустой строки приводит к созданию массива с одной отдельной пустой строкой, требующей особого внимания.

Полезные материалы

  1. String (Java SE 11 & JDK 11) — официальная документация метода split().
  2. java – Как разделить строку по пробелу – Stack Overflow — варианты решений от сообщества разработчиков для разделения строк по пробелу.
  3. Учебник | DigitalOcean — подробное руководство по трансформации строк в массивы в Java.
  4. StringTokenizer (Java Platform SE 7) — официальная документация по классу StringTokenizer.
  5. RegexPlanet: тестирование регулярных выражений для Java в режиме онлайн — практический инструмент для проверки регулярных выражений.
  6. Массивы (Java Tutorial > Изучение языка Java > Основы языка) — общий обзор работы с массивами в Java.
  7. Класс String в Java – GeeksforGeeks — руководство по работе со строками в Java.