如何替换字符串中每个单词的第一个字母?

时间:2015-10-13 17:09:34

标签: c# string

string str = "ghy saste mater"

如何将每个单词中的第一个字母从str替换为字母“w”?

所以新字符串将是:

  

“为什么要浪费水”

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:2)

你会使用string.Split()的分隔符爆炸" "你的字符串这会给你一个字符串数组,然后你可以遍历整个数组并调用:

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

更令人印象深刻的方法是使用Regex.Replace()并编写正则表达式来查找空格和字符的组合,然后用空格和w替换该字符串。

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

这真的很明确,所以我只提供了一些提示。查看我在这里谈到的内容,你会没事的。

答案 1 :(得分:0)

您可以将字符串拆分为数组,然后更改新数组的每个元素中的第一个字符。

类似的东西:

int indexWin = new ArrayList<String>(teamNameAndLeague.values()).indexOf("name2") + 1;

That returns: 2

然后你必须将数组转回一个字符串。

答案 2 :(得分: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 class:

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();

答案 3 :(得分: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());

答案 4 :(得分:0)

只需迭代它。

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