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

Я хочу разделить строку двумя разделителями: пробелом ("") или новой строкой (\ n).

Что я пробовал:

message.split("\\r?\\n? ");

Он разбивается на пробел, но не на \ n, поворачиваясь:

The way I see it we got two options. Option one, we take the easy way
out. It's quick and painless. I'm not a fan of option one. Option two,
We fight.

в:

[The, way, I, see, it, we, got, two, options., Option, one,, we, take, the, easy, way, out., It's, quick, and, painless., I'm, not, a, fan, of, option, one.Option, two,, We, fight.]

Обратите внимание, что one.Option - это одна ячейка в массиве.

За вашей новой строкой стоит пробел?

shmosel 31.05.2018 02:31

Нет.

user9536923 31.05.2018 02:31

Ну вот и проблема. Вам необходимо использовать |, если вы хотите сопоставить либо или.

shmosel 31.05.2018 02:32

Если вы не против того, чтобы разделитель был немного более общим, вы можете разделить его на любое количество пробельных символов ~ .split("\\s+")

Phil 31.05.2018 02:33

использование .split ("\\ s +") по-прежнему дает тот же результат

user9536923 31.05.2018 02:37

Из вашего вопроса неясно, каков ваш желаемый результат и что вы на самом деле получаете. Не могли бы вы уточнить?

Phil 31.05.2018 02:51

Это по моей вине, работает на все 100%.

user9536923 31.05.2018 03:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
364
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

"\\r?\\n? "

Это говорит ему о разделении либо на "\\r\\n ", либо на "\\n ", либо на "\\r ", либо на " ", но никогда на "\\r", или на "\\n", или на "\\r\\n" без пробела.

Следующее будет указывать на разделение на любую последовательную комбинацию "\\r", "\\n" и " " с хотя бы одним символом:

"[\\r\\n ]+"
Ответ принят как подходящий

Из комментариев попробуйте "\\s+" разделить на один или несколько пробелов. Это включает в себя пробел, табуляцию, новую строку, возврат каретки, перевод строки и т. д., Поэтому это может быть слишком большим молотком для того, что вы хотите.

final String message = "The way I see it we got two options. Option one, we take the easy way\n" +
        "out. It's quick and painless. I'm not a fan of option one. Option two,\n" +
        "We fight.";
System.out.println(String.join(", ", message.split("\\s+")));

Производит

The, way, I, see, it, we, got, two, options., Option, one,, we, take, the, easy, way, out., It's, quick, and, painless., I'm, not, a, fan, of, option, one., Option, two,, We, fight.

спасибо, оба предложения сработали (в первую очередь я пропустил метод Филла).

user9536923 31.05.2018 02:59

Другие вопросы по теме