Heim >Backend-Entwicklung >C++ >Wie kann ich nur das erste Vorkommen einer Zeichenfolge in .NET ersetzen?

Wie kann ich nur das erste Vorkommen einer Zeichenfolge in .NET ersetzen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-19 06:38:09526Durchsuche

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

Erstes Vorkommen einer Zeichenfolge in .NET ersetzen

.NET bietet mehrere Möglichkeiten, das erste Vorkommen einer bestimmten Zeichenfolge in einem bestimmten Text zu ersetzen.

Eine Möglichkeit besteht darin, eine benutzerdefinierte Methode zu verwenden, wie im folgenden Beispiel:

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

Diese Methode sucht nach dem ersten Vorkommen von „search“ in „text“ und ersetzt es durch „replace“. Die Logik ist wie folgt:

  • Verwenden Sie „IndexOf“, um den Index abzurufen.
  • Prüfen Sie, ob der negative Index nicht gefunden wurde.
  • Verkettet die Teilzeichenfolge vor dem Auftreten mit „replace“ und die verbleibende Teilzeichenfolge nach dem Auftreten.

Zum Beispiel:

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

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

Darüber hinaus stellt .NET die Methode Regex.Replace(String, String, Int32) bereit, die über eine ähnliche Funktionalität verfügt. Aufgrund des leistungsstarken Parsers können jedoch höhere Laufzeitkosten anfallen.

Um die häufige Verwendung zu erleichtern, können Sie eine Erweiterungsmethode erstellen:

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

Mit dieser Erweiterungsmethode kann das Beispiel wie folgt vereinfacht werden:

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

Das obige ist der detaillierte Inhalt vonWie kann ich nur das erste Vorkommen einer Zeichenfolge in .NET ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn