Java - Разделение строки на основе строки и новой строки - PullRequest
2 голосов
/ 03 февраля 2012

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

Однако, похоже, что он не разделен на основании наличия новой строки, как бы я это сделал? Пока что у меня есть:

String [] myArray = str.split ("stop");

Но я хочу включить сплиты в новую строку, но я не могу сделать это с помощью методов, которые я пробовал.

Возвращенные данные - это строка, содержащая что-то вроде следующего:

data1 stop data2 stop data3 \n

Поэтому я бы хотел поместить строки data1 и data2 в массив, а затем также data3 в массив без дополнительной строки.

Ответы [ 7 ]

5 голосов
/ 03 февраля 2012

Используйте split("stop|\\n"). Аргумент String#split является строкой, содержащей регулярное выражение.

Посмотрите на http://www.vogella.de/articles/JavaRegularExpressions/article.html и http://www.regular -expressions.info / java.html . Они обсуждают именно вашу проблему.

0 голосов
/ 03 февраля 2012

В дополнение к данным ответам, я бы предпочел пользователя split("stop|\n") вместо split("stop|\\n").Первое выражение использует встроенную поддержку Java для перевода строки, тогда как во втором регулярное выражение "\ n" интерпретируется как перевод строки.Так что в первом выражении меньше накладных расходов.

0 голосов
/ 03 февраля 2012

Использование str.split("Stop|\\n"); например

    String str = "Data1\nData2StopData";
    String[] a = str.split("Stop|\\n");
    System.out.println(Arrays.toString(a));

Даст [Данные1, Данные2, Данные]

0 голосов
/ 03 февраля 2012

Попробуйте это,

String number = "data1stopdata2stopdata3\\n";
String[] number_array = number.split("stop|\\n");

for(String s: number_array)
System.out.println(s.replace("\\n",""));

Выход = data1 data2 data3

0 голосов
/ 03 февраля 2012

Не должно ли что-то вроде этой работы:

String[] a=str.split("(stop|\\n)");

Не проверено, хотя.

0 голосов
/ 03 февраля 2012

Имейте в виду, что если вы хотите получить системно-независимый разделитель строк, вам лучше использовать:

System.getProperty("line.separator");
0 голосов
/ 03 февраля 2012

Вы можете использовать метод Google Guava Splitter .on (Pattern p).Установите в шаблоне «стоп», а также «\\ r? \\ n»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...