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

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

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 06:38:09479ブラウズ

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

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

.NET には、特定のテキスト内で最初に出現した特定の文字列を置換する方法がいくつか用意されています。

1 つの方法は、次の例のようなカスタム メソッドを使用することです。

<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>

このメソッドは、「text」内で最初に出現する「search」を検索し、「replace」に置き換えます。ロジックは次のとおりです:

  • 「IndexOf」を使用してインデックスを取得します。
  • 負のインデックスで見つからないかどうかを確認します。
  • 出現前の部分文字列を「replace」で連結し、出現後の残りの部分文字列を連結します。

例:

<code class="language-csharp">string str = "The brown brown fox jumps over the lazy dog";

str = ReplaceFirst(str, "brown", "quick");</code>

さらに、.NET は同様の機能を持つ Regex.Replace(String, String, Int32) メソッドを提供します。ただし、強力なパーサーを使用するため、実行時コストが高くなる可能性があります。

頻繁に使用できるようにするために、拡張メソッドを作成できます:

<code class="language-csharp">public static class StringExtension
{
  public static string ReplaceFirst(this string text, string search, string replace)
  {
     // ...与上面相同...
  }
}</code>

この拡張メソッドを使用すると、例は次のように簡略化できます:

<code class="language-csharp">str = str.ReplaceFirst("brown", "quick");</code>

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

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