Go: Prüfen, ob ein Teilstring in einem String enthalten ist – vollständige Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie prüft man in Go, ob ein String einen Teilstring enthält? Vom Anfänger zum Profi

\n\n

Haben Sie jemals in Go programmiert und standen plötzlich vor der einfachen Frage: „Enthält dieser String den benötigten Teil?“ Wenn ja – Sie sind nicht allein. Auf Stack Overflow hat diese Frage tausende Aufrufe, und das zu Recht. In Go gibt es mehrere elegante Wege, diese Aufgabe zu lösen, aber welchen soll man wählen? Lassen Sie es uns ein für alle Mal klären.

\n\n

In diesem Artikel zeigen wir Ihnen nicht nur die Funktion strings.Contains. Wir bringen Ihnen bei, wie ein Go-Entwickler zu denken: das optimale Werkzeug für jede Situation auszuwählen, Fallstricke zu vermeiden und Code zu schreiben, der schnell und vorhersagbar arbeitet.

\n\n

Inhaltsverzeichnis

\n\n\n

1. strings.Contains – Ihr erster Freund

\n\n

Beginnen wir mit der einfachsten und beliebtesten Methode. Die Funktion strings.Contains aus der Standardbibliothek von Go ist das, was Sie in 80 % der Fälle brauchen. Sie gibt true zurück, wenn der String den angegebenen Teilstring enthält, andernfalls false.

\n\n

So sieht das in echtem Code aus:

\n\n
package main\n\nimport (\n    "fmt"\n    "strings"\n)\n\nfunc main() {\n    str := "Hallo, Go-Welt!"\n    substr := "Welt"\n\n    if strings.Contains(str, substr) {\n        fmt.Println("String enthält Teilstring:", substr)\n    } else {\n        fmt.Println("Teilstring nicht gefunden")\n    }\n}\n
\n\n

Ausgabe:

\n
String enthält Teilstring: Welt
\n\n

Einfach, oder? Die Funktion ist groß-/kleinschreibungsabhängig: strings.Contains("Go", "go") gibt false zurück. Wenn Sie die Groß-/Kleinschreibung ignorieren müssen, verwenden Sie strings.ToLower oder strings.EqualFold.

\n\n

Beispiel mit Ignorieren der Groß-/Kleinschreibung

\n\n
str := "Golang ist großartig"\nsubstr := "golang"\n\nif strings.Contains(strings.ToLower(str), strings.ToLower(substr)) {\n    fmt.Println("Gefunden (ohne Berücksichtigung der Groß-/Kleinschreibung)!")\n}\n
\n\n

Wann verwenden: Wenn Sie eine einfache binäre Antwort benötigen – „vorhanden“ oder „nicht vorhanden“. Ohne unnötige Details.

\n\n

2. strings.Index – Wenn Sie die Position wissen müssen

\n\n

Manchmal reicht es nicht zu wissen, dass ein Teilstring vorhanden ist. Sie möchten verstehen, wo genau er sich befindet. Zum Beispiel parsen Sie ein Log und möchten einen Teil des Strings nach einem bestimmten Marker ausschneiden. Hier kommt strings.Index zur Hilfe.

\n\n

Diese Funktion gibt den Index des ersten Vorkommens des Teilstrings (beginnend bei 0) oder -1 zurück, wenn der Teilstring nicht gefunden wird.

\n\n
str := "Fehler: Datei nicht gefunden in /var/log"\nsubstr := "Datei"\n\npos := strings.Index(str, substr)\nif pos != -1 {\n    fmt.Printf("Teilstring gefunden an Position %d\\n", pos)\n    fmt.Printf("Kontext: %s\\n", str[pos:])\n} else {\n    fmt.Println("Teilstring nicht gefunden")\n}\n
\n\n

Ausgabe:

\n
Teilstring gefunden an Position 7\nKontext: Datei nicht gefunden in /var/log
\n\n

Es gibt auch andere Varianten:

\n
    \n
  • strings.LastIndex – sucht das letzte Vorkommen
  • \n
  • strings.IndexAny – sucht das erste Vorkommen eines beliebigen Zeichens aus einer Menge
  • \n
  • strings.IndexRune – sucht ein bestimmtes Unicode-Zeichen
  • \n
\n\n
// Beispiel mit LastIndex\nstr := "a-b-c-d"\nlastDash := strings.LastIndex(str, "-")\nfmt.Println("Letzter Bindestrich an Position:", lastDash) // 5\n\n// Beispiel mit IndexAny\nstr2 := "hallo welt"\npos := strings.IndexAny(str2, "aeiou")\nfmt.Println("Erster Vokal an Pos                

Blogs

Buchempfehlungen