2011-12-07 168 views
1

我需要使用java.I使用下面的代碼來執行此操作,用單個空白替換行中單詞之間的多個空格。但是當兩個單詞中的一個單詞是連字符' - '時,它不起作用。您能否讓我知道如果用單個空格替換一個單詞中的單詞之間的多個空格,如果其中一個單詞是連字符「 - 」。用單個空白替換單詞之間的多個空格

String s="1 2 1 2 1 2 1 2 1 2 1  2 1 2 1 2 1 2 1 2 1 2 1 2" 

s.replaceAll("\\b\\s{2,}\\b", " "); 

感謝

+3

您可以發佈的東西沒有一個更好的例子請工作? –

+0

如果我有一個包含5個單詞的行,我希望確保行中任意兩個連續單詞之間的多個空格被縮減爲單個空格。但是,如果該行中連續兩個單詞中的一個單詞是連字符' - ',則上述代碼不起作用。你可以告訴我如何實現這個在java –

+0

請參閱帖子:http://stackoverflow.com/questions/575500/java-regex-reduce-spaces-in-a-string – Drona

回答

1

刪除單詞邊界\\b因爲那裏是一個破折號-和空間之間沒有的。

4

您可以簡單地使用:

String s = "1 - 2 2" 
s.replaceAll("\\s{2,}", " "); 

給出了: 「二月1日至2日」

,甚至更簡單:

s.replaceAll("\\s+", " "); 
+0

查看[OMG Ponies](http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-humanity-epic-fail.aspx)「零寬度非連接器」。另請查看http://ideone.com/bps9d – Stefan

+0

s.replaceAll(「\\ s {2,}」,「」)對我來說效果很好。感謝大家。 –

相關問題