Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как разбить строку на части

Короткий ответ

split() возвращает массив частей:

void main() {
    String[] parts = "red,green,blue".split(",");
 
    IO.println(parts.length);
    IO.println(parts[1]);
}

Результат:

3
green

Сразу в список

Оберните массив в List.of() или Arrays.asList(), чтобы напечатать или обработать его как коллекцию:

void main() {
    var colors = List.of("red,green,blue".split(","));
    IO.println(colors);
}

Результат:

[red, green, blue]

По пробелам

Аргумент split() — регулярное выражение. \\s+ означает «один или больше пробельных символов»:

void main() {
    String text = "  one   two\tthree ";
    var words = List.of(text.strip().split("\\s+"));
 
    IO.println(words);
}

Результат:

[one, two, three]

Разделитель с пробелами вокруг

Регулярное выражение может сразу съесть пробелы около запятой:

void main() {
    var tags = List.of("java , spring,  sql".split("\\s*,\\s*"));
    IO.println(tags);
}

Результат:

[java, spring, sql]

Ограничить число частей

Второй аргумент задаёт максимальное количество частей — остаток строки попадает в последнюю:

void main() {
    String[] pair = "name=Anna=admin".split("=", 2);
 
    IO.println(pair[0]);
    IO.println(pair[1]);
}

Результат:

name
Anna=admin

Частая ошибка

Точка, вертикальная черта и некоторые другие символы в регулярных выражениях особенные. split(".") возвращает пустой массив:

void main() {
    IO.println("192.168.0.1".split(".").length);
    IO.println("192.168.0.1".split("\\.").length);
    IO.println("a|b".split(Pattern.quote("|")).length);
}

Результат:

0
4
2

Экранируйте такие символы через \\ или Pattern.quote().

Функции из этого ответа

  • String.split() — Разбивает строку на массив частей по разделителю.
  • Pattern.compile() — Компилирует регулярное выражение в объект Pattern, который можно использовать много раз.
  • String.lines() — Разбивает строку на строки по переводам строки и возвращает их потоком.
  • String.strip() — Удаляет любые пробельные символы Unicode в начале и в конце строки.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.