2011-12-07 169 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,}”,“”)对我来说效果很好。感谢大家。 –

相关问题