„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie teile ich eine Zeichenfolge basierend auf dem ersten Element in Golang auf?

Wie teile ich eine Zeichenfolge basierend auf dem ersten Element in Golang auf?

Veröffentlicht am 11.11.2024
Durchsuche:939

How to Split a String Based on the First Element in Golang?

Aufteilen eines Strings basierend auf dem ersten Element in Golang

Beim Parsen von Git-Zweignamen ist es wichtig, den String in das Remote- und das Remote-Element aufzuteilen Filialname. Während die Aufteilung nach dem ersten Schrägstrich zunächst logisch erschien, traten Herausforderungen auf, wenn Zweignamen mehrere Schrägstriche enthielten.

Erster Ansatz

Die anfängliche Implementierung basierte auf dem ersten Element in der Aufteilung Slice.

func ParseBranchname(branchString string) (remote, branchname string) {
    branchArray := strings.Split(branchString, "/")
    remote = branchArray[0]
    branchname = branchArray[1]
    return
}

Überarbeiteter Ansatz

Um Zweignamen mit Schrägstrichen zu berücksichtigen, wurde der Code geändert, um die verbleibenden Elemente wieder am Schrägstrich zusammenzuführen.

func ParseBranchname(branchString string) (remote, branchname string) {
    branchArray := strings.Split(branchString, "/")
    remote = branchArray[0]

    copy(branchArray[0:], branchArray[0 1:])
    branchArray[len(branchArray)-1] = ""
    branchArray = branchArray[:len(branchArray)-1]

    branchname = strings.Join(branchArray, "/")
    return
}

Alternative Lösung mit SplitN

Für Go-Versionen 1.18 und höher ist eine alternative Lösung mit strings.SplitN mit n=2 verfügbar. Dadurch wird das Ergebnis auf nur zwei Teilzeichenfolgen beschränkt, wodurch effektiv die gewünschte Aufteilung erreicht wird.

func ParseBranchname(branchString string) (remote, branchname string) {
    branchArray := strings.SplitN(branchString, "/", 2)
    remote = branchArray[0]
    branchname = branchArray[1]
    return
}

Diese Lösung vereinfacht den Prozess durch direktes Extrahieren der erforderlichen Teilzeichenfolgen ohne zusätzliche Manipulation.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3