2015-10-13 147 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]; 
} 
相关问题