ホームページ >バックエンド開発 >C++ >.NETで最初に出現した文字列のみを置換するにはどうすればよいですか?

.NETで最初に出現した文字列のみを置換するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-19 06:09:13407ブラウズ

How to Replace Only the First Occurrence of a String in .NET?

.NET で最初に出現した文字列を検索して置換します

チャレンジ:

特定のテキスト内で最初に出現した文字列を置換することは、プログラミングにおける一般的なタスクです。この記事では、.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) メソッドでもこのタスクを実行できますが、ここで紹介するカスタム メソッドよりも計算コストが高くなる可能性があります。
  • 文字列置換操作を頻繁に行う場合は、このメソッドを String クラスの再利用可能な拡張メソッドに拡張することを検討してください。

以上が.NETで最初に出現した文字列のみを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。