チャレンジ:
特定のテキスト内で最初に出現した文字列を置換することは、プログラミングにおける一般的なタスクです。この記事では、.NET でこれを効率的に行う方法について説明します。
解決策:
.NET で最初に出現した文字列を置換するには、次のメソッドを使用できます:
<code class="language-csharp">string ReplaceFirst(string text, string search, string replace) { int pos = text.IndexOf(search); if (pos < 0) return text; return text.Substring(0, pos) + replace + text.Substring(pos + search.Length); }</code>
このメソッドは、元のテキスト、検索する文字列、置換文字列の 3 つのパラメータを受け取ります。まず、IndexOf
を使用して、テキスト内で最初に出現した検索文字列のインデックスを見つけます。出現が見つからない場合 (つまり、pos が負の場合)、元のテキストが変更されずに返されます。
次に、このメソッドは、検索文字列が最初に出現する前の部分文字列 (インデックス 0 から位置まで)、置換文字列、および検索文字列の後の部分文字列 (インデックス 位置 search.Length からテキストの末尾まで) を連結することによって機能します。 ) 新しい文字列を構築します。
例:
次の例を考えてみましょう:
<code class="language-csharp">string str = "The brown brown fox jumps over the lazy dog"; str = ReplaceFirst(str, "brown", "quick");</code>
このコードを実行すると、str の値は「足の速い茶色のキツネが怠惰な犬を飛び越える」になります。最初に出現した「brown」は「quick」に置き換えられました。
追加メモ:
Regex.Replace(String, String, Int32)
メソッドでもこのタスクを実行できますが、ここで紹介するカスタム メソッドよりも計算コストが高くなる可能性があります。 以上が.NETで最初に出現した文字列のみを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。