文字配列定義を返すプログラムがあるとします。これをコピーして他の C# コードに貼り付けることができます。考えられる結果の 1 つは、次の文字列です。
// 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 は、空の行を 1 つだけ削除します (文字列の末尾に 1 つしか存在しないため)。
// Sub-par solution: (birdie solution?)
return Regex.Replace(testString, ", {}$", "") + "};";
文字列の末尾のみから一連の文字のすべてのインスタンスを削除するにはどうすればよいですか? 読みやすく、遅すぎず、マシンに負担をかけない結果が望ましいです。(ユーザーが現在知ることができる限り、ボタンを押すとすぐに戻ります。)