Как взять несколько строк из текста между символами возврата каретки?

265
03 ноября 2017, 08:45

Есть текст:

"Привет\n\nМне нужно взять эту часть текста.\n\n Бла-бла\nБла-бла\Бла-бла."

Нужно взять часть текста(несколько предложений), которые находятся между символами "\n\n". Реально ли это сделать? Ну или хотя бы до символа "\n\n".

Answer 1
public static void main(String[] args)
{
String text = "Привет\n\nМне нужно взять эту часть текста.\n\n Бла-бла\nБла-бла\nБла-бла.";
String[] result = text.split("\n\n");
//Вывод отдельных предложений
for(int i = 0;i < result.length;i++)
{
  System.out.println(result[i]);
}

}

Answer 2

Так?

 String string = "Привет\n\nМне нужно взять эту часть текста.\n\n Бла-бла\nБла-бла\nБла-бла.";
 String []splitArray = string.split("\n\n");

Дополнено
Нужная строка будет вторым элементом в массиве.

Answer 3

В случае, если нужно найти все варианты строк между \n\n, можно использовать такой вариант:

String s = "Привет\n\nМне нужно взять эту часть текста.\n\nБла-бла\nБла-бла\n\nБла-бла.";
Pattern p = Pattern.compile("\n\n([\\s\\S]+?)\n\n");
Matcher m = p.matcher(s);
int i = 0;
while (m.find(i)) {
    System.out.println("'" + m.group(1) + "'");
    i = m.start(1);
}

Результат:

'Мне нужно взять эту часть текста.'
'Бла-бла
Бла-бла'

Если нужно первое вхождение - можно заменить цикл на простое условие:

if (m.find()) {
    System.out.println(m.group(1));
}

Если между \n\n не может быть других переносов строк, то логично упростить регулярное выражение и использовать \n\n(.+)\n\n.

Answer 4
public String findSubstring (String text, char firstSearchSymbol, char secondSearchSymbol) {
    try{
       return text.substring(text.indexOf(firstSearchSymbol)+1, text.indexOf(secondSearchSymbol)); 
    }
    catch (StringIndexOutOfBoundsException e) {
        return text;
    }
}
READ ALSO
NotificationListenerService Ошибки при работе приложения

NotificationListenerService Ошибки при работе приложения

Скопировал данный проектКомпилируется без ошибок

241
Hibernate проблема с SessionFactory

Hibernate проблема с SessionFactory

При conection в базу, ошибка NoSuchMethodError: orghibernate

301
Отправка запроса через Postman с использованием ЭЦП

Отправка запроса через Postman с использованием ЭЦП

Приветствую! Есть url, на который необходимо послать запрос с использованием ЭЦП(электронная цифровая подпись), у меня есть private и public ключи,...

328