您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

String.Replace .NET Framework的内存效率和性能

String.Replace .NET Framework的内存效率和性能

__.NET字符串中的 所有 字符均为“ unicode字符”。您是不是说他们不是ascii?这应该不成问题-除非您遇到构图问题,例如在尝试替换“ e急性”时未替换“ e +急性重音”。

您可以尝试使用带有Regex.Replace或的正则表达式StringBuilder.Replace。下面的示例代码对两者都做同样的事情:

using System;
using System.Text;
using System.Text.RegularExpressions;

class Test
{
    static void Main(string[] args)
    {
        string original = "abcdefghijkl";

        Regex regex = new Regex("a|c|e|g|i|k", RegexOptions.Compiled);

        string removedByRegex = regex.Replace(original, "");
        string removedByStringBuilder = new StringBuilder(original)
            .Replace("a", "")
            .Replace("c", "")
            .Replace("e", "")
            .Replace("g", "")
            .Replace("i", "")
            .Replace("k", "")
            .ToString();

        Console.WriteLine(removedByRegex);
        Console.WriteLine(removedByStringBuilder);
    }
}

我不想猜测哪种效率更高- 您必须使用特定的应用程序进行基准测试。regex方法可能一次就能完成所有操作,但是与StringBuilder中的许多替换操作相比,该过程将占用大量cpu

dotnet 2022/1/1 18:14:25 有584人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶