如果输入字符串是
Cat fish bannedwordbreadbánnedwordmousebãnnedword
应输出
猫鱼面包鼠
在不降低性能的情况下,最好的方法是什么?
答案 0 :(得分:0)
您可以使用多种方式但不使用它们(至少据我所知)在没有特定性能成本的情况下工作。
最明显的方法是首先删除重音字符,然后使用简单的string.Replace()。至于删除重音字符this或this stackoverflow问题可以帮助你。
其他方法可能是将字符串拆分为字符串数组(每个字符串都是单独的字),然后删除每个等于' bannedword'使用parameter that makes Equals() method ignore accents。
类似的东西:
string[] splittedInput = input.Split(' ');
StringBuilder output = new StringBuilder();
foreach(string word in splittedInput)
{
if(string.Compare(word, bannedWord, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace) == false)
{
output.Append(word);
}
}
string s_output = output.ToString();
//我没有在Visual Studio中对它进行过测试,因此可能会出现错误......(LINQ也可以简化它(并可能启用多元化))。
最后,应该可以提出一个聪明的正则表达式解决方案(可能是最快的方法)但不是正则表达式的专家我可以帮助你(this可能指向你在正确的方向(如果你至少知道关于正则表达式的东西)。)