Csharp/C#教程:如何替换C#中的特定单词?分享


如何替换C#中的特定单词?

请考虑以下示例。

string s = "The man is old. Them is not bad."; 

如果我使用

 s = s.Replace("The", "@@"); 

然后它返回"@@ man is old. @@m is not bad."
但我希望输出为"@@ man is old. Them is not bad."

我怎样才能做到这一点?

以下是如何使用正则表达式来处理任何单词边界:

 Regex r = new Regex(@"bTheb"); s = r.Replace(s, "@@"); 

我在上面做了一个评论,询问为什么标题被改为假设使用正则表达式。

我个人试图不使用正则表达式,因为它很慢。 Regex非常适合复杂的字符串模式,但是如果字符串替换很简单并且你需要一些性能,我会试着找到一种不使用Regex的方法。

扔了一个测试。 使用Regex和字符串方法运行一百万次替换。

正则表达式需要26.5秒才能完成,字符串方法需要8秒才能完成。

  //Using Regex. Regex r = new Regex(@"b[Tt]heb"); System.Diagnostics.Stopwatch stp = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { string str = "The man is old. The is the Good. Them is the bad."; str = r.Replace(str, "@@"); } stp.Stop(); Console.WriteLine(stp.Elapsed); //Using String Methods. stp = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { string str = "The man is old. The is the Good. Them is the bad."; //Remove the The if the stirng starts with The. if (str.StartsWith("The ")) { str = str.Remove(0, "The ".Length); str = str.Insert(0, "@@ "); } //Remove references The and the. We can probably //assume a sentence will not end in the. str = str.Replace(" The ", " @@ "); str = str.Replace(" the ", " @@ "); } stp.Stop(); Console.WriteLine(stp.Elapsed); 

s = s.Replace(“The”,“@@”);

C#console应用程序

上述就是C#学习教程:如何替换C#中的特定单词?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

 static void Main(string[] args) { Console.Write("Please input your comment: "); string str = Console.ReadLine(); string[] str2 = str.Split(' '); replaceStringWithString(str2); Console.ReadLine(); } public static void replaceStringWithString(string[] word) { string[] strArry1 = new string[] { "good", "bad", "hate" }; string[] strArry2 = new string[] { "g**d", "b*d", "h**e" }; for (int j = 0; j < strArry1.Count(); j++) { for (int i = 0; i < word.Count(); i++) { if (word[i] == strArry1[j]) { word[i] = strArry2[j]; } Console.Write(word[i] + " "); } } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1024682.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐