2015-05-29 64 views
3

我需要C#中字符串处理方面的帮助。用C#.NET进行字符串处理

我有字和字符串之间的空白字符串(我有不止一个单词之间的空格,空格是动态的)。 我需要更换与前围空的空间 “ - ”

我有这样的事情:

string stringForManipulation = "word1 word2 word3"; 

我需要这样的:

"word1-word2-word3" 

TNX

+2

这个问题说“给我codez”。证明你在要求解决方案之前已经尝试了一些东西。 http://stackoverflow.com/help/how-to-ask是一个好的开始。 –

回答

12
​​

s装置的空白和+指一种或多种occurence。

+0

谢谢分配! 干杯。 –

6

您可以使用正则表达式:

string stringForManipulation = "word1 word2 word3"; 
string result = Regex.Replace(stringForManipulation, @"\s+", "-"); 

这会将所有出现的一个或多个空格替换为“ - ”。

3

对于thoose没有正则表达式的知识,也可以通过简单的实现分裂联接操作:

string wordsWithDashes = stringForManipulation.Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries).Join('-') 
+1

它可以...但这是其中正则表达式更好的答案,因为正则表达式解决方案更简单,更易于阅读。 –

+0

我同意正则表达式代码更短,但是有许多人完全是编程新手,并且不了解正则表达式。 – cyberj0g

+0

@ cyberj0g - ...在这种情况下,他们应该明白,正则表达式是一件事情。我不相信你的解决方案更容易理解新编程的人。此外,声明“它可以不用正则表达式”是好的和真实的,但请添加“为什么它应该没有正则表达式”部分。 –

0

只需使用

string result=Regex.Replace(str , @"\s+", "-") 

将取代单个或多个空格单“ - ”

0

您可以试试以下内容

string stringForManipulation = "word1 word2 word3"; 
string wordsWithDashes = String.Join(" ", stringForManipulation.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)).Replace(" ", "-"); 

创建一个Fiddle