2010-04-02 87 views
1

我想將我的字符串中的/ n拆分爲Java。例如,我有一個有兩行空格(/ n)的字符串字段。我必須找出線條(無論哪裏的線條即將到來),並且應該用一個線條空間替換。正則表達式拆分「/ n」

"This is Test Message 


    thanks 
    Zubair 
" 

從上面的例子中,「This is Test Message」和「thanks」之間有更多的空格。所以我想減少只有一條線而不是兩條線。怎麼做?

+2

你是指\ n還是/ n?我認爲\ n是換行符分隔符 – 2010-04-02 06:15:07

+0

是的,你的意思完全一樣。 \ n僅限新行分隔符 – 2010-04-02 06:45:13

+0

您可以搜索\\ n,它表示正則表達式中的任何換行符序列。 – 2010-04-02 08:15:57

回答

2

我不知道如何使用正則表達式,但你可以使用的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(); 
} 

此分割線斷繩,然後將每行一個新的字符串(的標記生成器治療倍數它的分隔符爲一個,所以你將只剩下一行換行符)。

+0

感謝您的迴應我會盡力讓您知道 – 2010-04-02 07:33:20

+0

據我所知,OP希望將兩個或更多個連續的空行減少到一個。這只是擺脫*所有*換行符。 – 2010-04-02 08:48:46

4
str.replaceAll("(\\r\\n?|\\n){3,}", "$1$1"); 

這樣做是更換三個或更多的行終止(\r\n\r\n)兩點終止,所以任何雙空行替換爲一個空行,如果我知道你想什麼正確。

+0

感謝您的回覆,我會盡力讓您知道 – 2010-04-02 07:40:08

+0

我喜歡使用引用和顯式量詞。但是,如果中間行是空白但不是空的,這將無法正常工作。 – 2010-04-02 22:58:39

+0

@pst真,但沒有給出「空」的明確定義。允許在其上放置空格的行可以通過在其中放入'\ s *'來輕鬆添加。 – cletus 2010-04-02 23:01:24