如何替换字符串中每个单词的第一个字母?
本文关键字:单词 第一个 何替换 替换 字符串 | 更新日期: 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];
}