我想查找前一个字符的所有出现。较长的字符串“ The Haunting of Hill House”中的“ H”。我正在使用此代码,但仅按特定位置进行搜索。
static void Main(string[] args)
{
string str = "The Haunting of Hill House!";
Console.WriteLine("String: " + str);
// replacing character at position 7
int pos = 7;
char rep = 'p';
string res = str.Substring(0, pos) + rep + str.Substring(pos + 1);
Console.WriteLine("String after replacing a character: " + res);
Console.ReadLine();
}
答案 0 :(得分:1)
使用Linq而不使用string.Replace()
的单线解决方案,
string result = string.Join("", str.Select(x => x == 'H' ? 'p' : x));
`
如果要替换整个字符串,请尝试此
string result1 = string.Join(" ", str.Split(' ').Select(x => x == "Hill" ? "Zill" : x));
输入:
The Haunting of Hill House!
输出:
The paunting of pill pouse!
The Haunting of Zill House!
//^^^^ Replaced word from Hill to Zill
答案 1 :(得分:0)
一般方法是先使用String.IndexOf
函数找到要在其他字符串上替换的字符串位置,然后将字符串从位置替换为要替换的字符串长度,而不是仅将字符串插入{{1} }功能。