2015-05-29 67 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