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

本文关键字:单词 第一个 何替换 替换 字符串 | 更新日期: 2023-09-27 18:17:26

string str = "ghy saste mater"

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

所以新的字符串是:

"为什么要浪费水"

我怎样才能做到这一点?

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

你可以用" "的定界符将字符串string.Split()展开这将得到一个字符串数组然后你可以循环遍历整个数组并调用:

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

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

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

这真的很简单,所以我只提供了一些提示。查一下我在这里讲的内容,你就会没事的。

试试这个:

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

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

类似:

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

那么你必须将数组转换回字符串

一个简洁的方法是使用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();

直接遍历。

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