相关疑难解决方法(0)

String.Replace()与StringBuilder.Replace()

我有一个字符串,我需要用字典中的值替换标记.它必须尽可能高效.使用string.replace执行循环只会消耗内存(字符串是不可变的,请记住).StringBuilder.Replace()会更好,因为它是用于字符串操作的吗?

我希望避免花费RegEx,但如果这样做会更有效率那么就这样吧.

注意:我不关心代码复杂性,只关心它运行的速度和消耗的内存.

平均统计数据:长度为255-1024个字符,字典中为15-30个字符.

.net c# replace .net-4.0

73
推荐指数
4
解决办法
5万
查看次数

替代多个String.Replaces

我的代码String.Replace连续多次使用:

mystring = mystring.Replace("somestring", variable1);
mystring = mystring.Replace("somestring2", variable2);
mystring = mystring.Replace("somestring3", variable1);
Run Code Online (Sandbox Code Playgroud)

我怀疑有更好更快的方法.你会建议什么?

c# string replace

60
推荐指数
5
解决办法
6万
查看次数

C#字符串替换为字典

我有一个字符串,我需要做一些替换.我有一个Dictionary<string, string>我定义的搜索替换对的地方.我创建了以下扩展方法来执行此操作:

public static string Replace(this string str, Dictionary<string, string> dict)
{
    StringBuilder sb = new StringBuilder(str);

    return sb.Replace(dict).ToString();
}

public static StringBuild Replace(this StringBuilder sb, 
    Dictionary<string, string> dict)
{
    foreach (KeyValuePair<string, string> replacement in dict)
    {
        sb.Replace(replacement.Key, replacement.Value);
    }

    return sb;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

c# string dictionary replace

31
推荐指数
3
解决办法
2万
查看次数

StringBuilder中的正则表达式替换

我正在将文本文件的内容写入StringBuilder,然后我想使用正则表达式对StringBuilder中包含的文本执行许多查找/替换操作.

我遇到了一个问题,因为StringBuilder替换函数不能接受正则表达式参数.

我可以在普通字符串上使用Regex.Replace,但我认为这是低效的,因为由于.net字符串是不可变的,因此需要在内存中创建两个字符串副本.

一旦我更新了文本,我打算将其写回原始文件.

什么是解决我问题的最佳和最有效的方法?

编辑

除了下面的答案,我发现以下问题也解释了我的问题 -

c# regex stringbuilder

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×4

replace ×3

string ×2

.net ×1

.net-4.0 ×1

dictionary ×1

regex ×1

stringbuilder ×1