我只是想知道什么是替换必须随后替换的字符串字符的最简单方法.
例如:
var str = "[Hello World]";
//enclose all occurences of [ and ] with brackets[]
str = str.Replace("[","[[]").Replace("]","[]]");
Run Code Online (Sandbox Code Playgroud)
[[]Hello World[]][[[]]Hello World[]]原因显然是已经修改过的字符串的第二个替换.
那么如何用包含"坏"字符的字符替换所有"坏"字符的出现?
快速测量所有方法表明StringBuilder是最有效的方法.
190kb文件(全部以毫秒为单位)
Run Code Online (Sandbox Code Playgroud)regexTime 40.5065 replaceTime 20.8891 stringBuilderTime 6.9776
7MB文件
Run Code Online (Sandbox Code Playgroud)regexTime 1209.3529 replaceTime 403.3985 stringBuilderTime 175.2583
顺便说一句,John的直接StringBuilder方法 是Sehe的Aggregate方法的两倍.
我做了一个扩展:
public static String EncloseChars(this string input, char[] charsToEnclose, String leftSide, String rightSide) {
if (charsToEnclose == null || leftSide == null || rightSide …Run Code Online (Sandbox Code Playgroud)