Heim > Backend-Entwicklung > Golang > golang string转slice

golang string转slice

WBOY
Freigeben: 2023-05-10 09:55:36
Original
1443 Leute haben es durchsucht

In Golang ist der String-Typ ein unveränderlicher Typ, das heißt, sein Wert kann nicht direkt geändert werden. Aber in Szenarien müssen wir manchmal den String-Typ in eine modifizierbare Zeichenfolge (Slice) konvertieren. In diesem Artikel werden zwei Methoden vorgestellt, um diese Konvertierung zu erreichen.

Methode 1: Verwenden Sie das Strings-Paket

Das Strings-Paket ist ein String-Verarbeitungspaket in der Golang-Standardbibliothek, das eine Methode zum Konvertieren von Strings in Slices bereitstellt. Die spezifische Implementierung lautet wie folgt:

import "strings"

func StringToSlice(s string) []rune {
    return []rune(s)
}
Nach dem Login kopieren

Der Runentyp wird in dieser Methode verwendet. Der Runentyp stellt Unicode-Zeichen dar und kann Zeichen in Chinesisch, Japanisch, Koreanisch und anderen Sprachen enthalten. Durch die Umwandlung des String-Typs in den Rune-Typ können Sie eine modifizierbare Zeichenfolge (Slice) erhalten.

Das Folgende ist ein einfaches Beispiel, das die Verwendung dieser Methode zeigt:

package main

import (
    "fmt"
    "strings"
)

func StringToSlice(s string) []rune {
    return []rune(s)
}

func main() {
    s := "hello world"
    sl := StringToSlice(s)
    sl[0] = 'H'
    fmt.Println(sl)
    fmt.Println(strings.ToUpper(string(sl)))
}
Nach dem Login kopieren

Programmausgabe:

[72 101 108 108 111 32 119 111 114 108 100]
HELLO WORLD
Nach dem Login kopieren

Durch Konvertieren des von StringToSlice zurückgegebenen Slice Funktion Wird an die Funktion strings.ToUpper übergeben, können wir die gesamte Zeichenfolge in Großbuchstaben umwandeln.

Methode 2: Byte-Slice verwenden

Zusätzlich zur Verwendung des Strings-Pakets können wir auch den String-Typ in ein Byte-Slice konvertieren und dann das Byte-Slice in ein Byte-Slice umwandeln Runentyp-Scheibe. Die spezifische Implementierung lautet wie folgt:

func StringToSlice(s string) []rune {
    bs := []byte(s)
    rs := make([]rune, len(bs))
    for i, b := range bs {
        rs[i] = rune(b)
    }
    return rs
}
Nach dem Login kopieren

In dieser Methode verwenden wir den Byte-Typ Slice, und der Byte-Typ stellt eine 8-Bit-Ganzzahl ohne Vorzeichen dar. Indem wir den String-Typ in ein Byte-Typ-Slice umwandeln, können wir eine in Bytes gespeicherte Sequenz erhalten. Wir durchlaufen den Bytetyp-Slice, konvertieren jedes Element in den Runentyp und geben schließlich einen Runentyp-Slice zurück.

Das Folgende ist ein Beispiel für die Verwendung dieser Methode:

package main

import (
    "fmt"
)

func StringToSlice(s string) []rune {
    bs := []byte(s)
    rs := make([]rune, len(bs))
    for i, b := range bs {
        rs[i] = rune(b)
    }
    return rs
}

func main() {
    s := "hello world"
    sl := StringToSlice(s)
    sl[0] = 'H'
    fmt.Println(sl)
}
Nach dem Login kopieren

Programmausgabe:

[72 101 108 108 111 32 119 111 114 108 100]
Nach dem Login kopieren

Ähnlich wie bei Methode 1 können wir auch das Slice konvertieren Verwenden Sie für Zeichenfolgen die vom Zeichenfolgenpaket bereitgestellten Zeichenfolgenoperationsfunktionen, um die Groß-/Kleinschreibung von Zeichenfolgen und andere Vorgänge zu implementieren.

Fazit

Generell empfehlen wir, für die Verarbeitung von Strings und Zeichenfolgen die vom Strings-Paket bereitgestellte API zu verwenden, da diese nicht nur eine bessere Leistung bietet, sondern auch mehr Typsicherheit bietet auch zur Verfügung gestellt. In einigen Sonderfällen bietet Byte Slice jedoch eine flexiblere Verarbeitungsmethode, die sich an unterschiedliche Anforderungen anpassen lässt.

Das obige ist der detaillierte Inhalt vongolang string转slice. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage