Detaillierte Erklärung des Strings-Pakets in Golang (3): strings.Replacer

strings.Replacer

strings.Replacer ist ein Strukturtyp zum Ersetzen von Zeichenfolgen, mit dem eine Reihe von Zeichenfolgenersetzungsvorgängen ausgeführt werden können, bei denen bestimmte Teilzeichenfolgen in einer Zeichenfolge durch eine andere Teilzeichenfolge ersetzt werden. Die Strukturdefinition und die entsprechenden Methoden lauten wie folgt:

type Replacer struct {
	once   sync.Once // guards buildOnce method
	r      replacer
	oldnew []string
}

strings.Replacer enthält die folgenden Methoden:

  • func NewReplacer(oldnew ...string) *Replacer: Gibt einen neuen Replacementr zurück, der jeden „alten“ String in oldnew durch den entsprechenden „neuen“ String ersetzt und die Ersetzungen in der Reihenfolge ihres Auftretens durchführt.
  • func (r *Replacer) Replacement(s string) string: Ersetzt alle „alten“ Strings in s durch ihre entsprechenden „neuen“ Strings und gibt den neuen String zurück.

Vorteil

Die strings.Replacer-Schnittstelle kann die Ersetzungsregeln anpassen und bietet so eine flexiblere Methode zum Ersetzen von Zeichenfolgen. Sie können je nach Szenario unterschiedliche Ersetzungslogiken implementieren, indem Sie Ihre eigene Ersetzungsmethode implementieren. strings.Replacer ist effizienter als die direkte Verwendung von strings.Replace, da die Ersatzzeichenfolge vorverarbeitet werden kann und das erstellte strings.Replacer-Objekt wiederverwendet werden kann, gleichzeitig sicher ist und gleichzeitig in mehreren Goroutinen verwendet werden kann.

Anwendungsbeispiel

Ein einfaches Anwendungsbeispiel lautet wie folgt:

package main

import (
	"fmt"
	"strings"
)

func main() {
	// 创建一个新的 Replacer。
	// "博客" 将被替换为 "所思所想","精彩" 将被替换为 "值得学习"。
	r := strings.NewReplacer("博客", "所思所想", "精彩", "值得学习")

	// 使用 Replace 方法替换字符串中的子串。
	s := "路多辛的博客非常精彩"
	s = r.Replace(s)

	fmt.Println(s)
	// Output: 路多辛的所思所想非常值得学习
}

Führen Sie den Beispielcode aus. Die Ausgabe lautet wie folgt:

$ go run main.go
路多辛的所思所想非常值得学习

Zunächst wird ein Ersetzungselement erstellt. Beim Ersetzen von Zeichenfolgen wird „Blog“ durch „Denken“ und „Wunderbar“ durch „Lernen wert“ ersetzt. Verwenden Sie dann die Methode „Ersetzen“, um die Teilzeichenfolge in der Eingabezeichenfolge durch den neuen Text zu ersetzen. In diesem Beispiel lautet die Eingabezeichenfolge „Lu Duoxins Blog ist sehr wundervoll“ und das Ergebnis der Zeichenfolgenersetzung lautet „Lu Duoxins Gedanken sind sehr lernenswert“.

Es ist zu beachten, dass bei der Verwendung von strings.Replacer für String-Ersetzungsvorgänge variable Parameterfunktionen und String-Slices verwendet werden können, um mehrere String-Paare zum Ersetzen bereitzustellen. In diesen Zeichenfolgenpaaren ist die erste Zeichenfolge die zu ersetzende Teilzeichenfolge und die zweite Zeichenfolge der neue Text, der sie ersetzen soll. Ersetzungsoperationen werden sequentiell ausgeführt, d. h. das vom ersten Zeichenfolgenpaar erzeugte Ergebnis wird zur Eingabe für das zweite Zeichenfolgenpaar.

Zusammenfassung

Mit strings.Replacer können Sie Zeichenfolgen bequem, effizient und flexibel ersetzen, ohne manuell Schleifen und bedingte Anweisungen schreiben zu müssen. Da strings.Replacer intern einen Caching-Mechanismus verwendet, können gleichzeitig wiederholte String-Ersetzungsvorgänge vermieden werden, wenn die Methode „Replace“ mehrmals aufgerufen wird, wodurch die Leistung verbessert wird.

おすすめ

転載: blog.csdn.net/luduoyuan/article/details/131260556