Регулярное выражение для разделения "/ n" - PullRequest
1 голос
/ 02 апреля 2010

Я хочу отделить / n от моей строки в Java. Например, у меня есть одно поле String, которое имеет 2 строки пробела (/ n). Я должен выяснить строки (куда бы ни пришёл mopre, чем одна строка) и должен заменить один пробел.

"This is Test Message  


  thanks
  Zubair
"

В приведенном выше примере между «Это тестовое сообщение» и «спасибо» больше пробелов. Поэтому я хочу сократить только одну строку вместо 2 строк. Как это сделать?

Ответы [ 2 ]

4 голосов
/ 02 апреля 2010
str.replaceAll("(\\r\\n?|\\n){3,}", "$1$1");

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

2 голосов
/ 02 апреля 2010

Я не знаю, как использовать регулярные выражения, но вы можете использовать StringTokenizer:

String reduceToOneLine(String input){
    // Note that this means both \r and \n are tokens, not that they have to appear together.
    StringTokenizer tokenizer = new StringTokenizer(input, "\r\n"); 
    StringBuffer output = new StringBuffer();
    while(tokenizer.hasMoreTokens()){
        output.append(tokenizer.nextToken());
    }
    return output.toString();
}

Это разбивает строку на разрывы строк, затем добавляет каждую строку в новую строку (токенизатор обрабатывает кратные значения своего разделителя как единое целое, поэтому у вас останется только один разрыв строки между строками).

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