假设我们有一个返回字符数组定义的程序 - 所以我们可以将它复制粘贴到其他 C# 代码中。一种可能的结果是以下字符串:
// Current output:
return "CharArray = { {}, {123}, {}, {3 3}, {111}, {}, {}" + "};";
现在我们想消除CharArray末尾多余的空行,同时在开头或中间保留任何空行:
// Desired output:
"CharArray = { {}, {123}, {}, {3 3}, {111}" + "};";
(由于间距的原因,数据之前或之间的任何空行都是必要的,但最后的空白对我们的代码没有任何用处。)
由于在操作之后才添加最后的括号和分号,因此似乎最简单的方法是从字符串中删除“,{}”的所有尾随实例。我目前的解决方案是一个非常开箱即用的替换和修剪组合......
// Red-Green solution:
return output.Replace(", {}", "!").TrimEnd('!').Replace("!", ", {}") + "};";
...它肯定会返回正确的结果,但是冗长,使读者感到困惑,并且很可能使您在第一次阅读时感到畏缩。
此外,我通常用于此类问题的 Regex.Replace 仅删除一个空行(因为字符串末尾仅存在一个),我宁愿不必通过循环提供它:
// Sub-par solution: (birdie solution?)
return Regex.Replace(testString, ", {}$", "") + "};";
我怎样才能最好地从字符串的末尾删除一系列字符的所有实例?我更喜欢既可读又不会太慢或对机器造成负担的结果。(据用户目前所知,在他们按下按钮后立即返回。)