我想將我的字符串中的/ n拆分爲Java。例如,我有一個有兩行空格(/ n)的字符串字段。我必須找出線條(無論哪裏的線條即將到來),並且應該用一個線條空間替換。正則表達式拆分「/ n」
"This is Test Message
thanks
Zubair
"
從上面的例子中,「This is Test Message」和「thanks」之間有更多的空格。所以我想減少只有一條線而不是兩條線。怎麼做?
我想將我的字符串中的/ n拆分爲Java。例如,我有一個有兩行空格(/ n)的字符串字段。我必須找出線條(無論哪裏的線條即將到來),並且應該用一個線條空間替換。正則表達式拆分「/ n」
"This is Test Message
thanks
Zubair
"
從上面的例子中,「This is Test Message」和「thanks」之間有更多的空格。所以我想減少只有一條線而不是兩條線。怎麼做?
我不知道如何使用正則表達式,但你可以使用的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();
}
此分割線斷繩,然後將每行一個新的字符串(的標記生成器治療倍數它的分隔符爲一個,所以你將只剩下一行換行符)。
感謝您的迴應我會盡力讓您知道 – 2010-04-02 07:33:20
據我所知,OP希望將兩個或更多個連續的空行減少到一個。這只是擺脫*所有*換行符。 – 2010-04-02 08:48:46
str.replaceAll("(\\r\\n?|\\n){3,}", "$1$1");
這樣做是更換三個或更多的行終止(\r
,\n
或\r\n
)兩點終止,所以任何雙空行替換爲一個空行,如果我知道你想什麼正確。
感謝您的回覆,我會盡力讓您知道 – 2010-04-02 07:40:08
我喜歡使用引用和顯式量詞。但是,如果中間行是空白但不是空的,這將無法正常工作。 – 2010-04-02 22:58:39
@pst真,但沒有給出「空」的明確定義。允許在其上放置空格的行可以通過在其中放入'\ s *'來輕鬆添加。 – cletus 2010-04-02 23:01:24
你是指\ n還是/ n?我認爲\ n是換行符分隔符 – 2010-04-02 06:15:07
是的,你的意思完全一樣。 \ n僅限新行分隔符 – 2010-04-02 06:45:13
您可以搜索\\ n,它表示正則表達式中的任何換行符序列。 – 2010-04-02 08:15:57