2015-10-13 208 views
-1
string str = "ghy saste mater" 

如何更換第一個字母每個字從str字母「W」?如何替換字符串中每個單詞的第一個字母?

因此,新的字符串將是:

「爲什麼廢水」

我怎樣才能做到這一點?

+1

您能說明一下_word_的定義嗎?對於模式匹配,這往往具有非常特殊的含義。 – canon

回答

0

您可以在字符串分割成一個數組,然後改變它的第一個字符在新的數組的每個元素。

喜歡的東西:

string[] str_array = str.Split(' '); 

for (int i = 0; i < str_array.Length; i++) { 
    str_array[i] = "w" + str_array[i].Substring(1, str_array[i].Length); 
} 

然後,你將不得不數組變回一個字符串。

2

你會使用" "這個分隔符會給你一個字符串數組爆炸string.Split()您的字符串,然後你可以將整個陣列上循環,並呼籲:這樣做的

string.Replace(string[0], 'w') 

一個更加令人印象深刻的方式將使用Regex.Replace()並編寫正則表達式來查找空格和字符的組合,然後用空格和w替換該字符串。

something like " a" would be replaced with " w" 

這實在是很直截了當,所以我只提供了一些提示。看看我在這裏談到的,你會沒事的。

+0

這是一個很好的!謝謝你,我會更加註意這一點。 – Alex

+1

如果您決定採取這種方式,使用正則表達式時,以下是一個有用的試驗和錯誤工具。 http://www.regexr.com/ – TheDude

0

一個巧妙的辦法是使用Regex.Replace()

string str = "ghy saste mater";   
var strModified = Regex.Replace(str, @"\b\w", "w"); 

你也可以使用LINQ:

var str = "ghy saste mater" 
var strModified = string.Join(" ", str.Split().Select(s => "w" + s.Substring(1, s.Length - 1)))); 

如果修改字符串很多,可以考慮使用StringBuilder類:

var str = "ghy saste mater" 
var strModified = str.Split().Select(s => "w" + s.Substring(1, s.Length - 1)). 
    Aggregate(new StringBuilder(), (b, s) => b.Append(s + " ")).ToString(); 
0

試試這個:

string str = "ghy saste mater"; 
     string[] parts = str.Split(' '); 
     string result = string.Join(" ", parts.Select(p => "w" + (p.Length > 1 ? p.Substring(1, p.Length - 1) : "")).ToArray()); 
0

通過它只是迭代。

string o = ""; 
o += str[0] 
for (int i = 1; i < str.length; i++){ 
    o+=str[i-1] == ' ' ? 'w' : str[i]; 
} 
相關問題