Heim >Backend-Entwicklung >Golang >Golang-Zeichen zum Array
Golang ist eine von Google eingeführte Programmiersprache. Ihr Designziel besteht darin, die Effizienz und Wartbarkeit der Softwareentwicklung zu verbessern. In Golang sind Zeichen und Zeichenfolgen zwei verschiedene Datentypen, wir müssen jedoch häufig eine Zeichenfolge in ein Zeichenarray konvertieren. In diesem Artikel wird erläutert, wie Sie in Golang Zeichen in Arrays konvertieren.
In Golang sind die Konzepte von Zeichen und Zeichenfolgen relativ klar. Ein Zeichen ist ein Unicode-Codepunkt und belegt 4 Bytes, während eine Zeichenfolge eine Folge mehrerer Zeichen ist, die mit UTF-8 codiert sind und jedes Zeichen 1–4 Bytes belegt. Wenn wir eine Zeichenfolge in ein Zeichenarray konvertieren müssen, müssen wir daher die folgenden Fragen berücksichtigen:
Wir werden sie im Folgenden einzeln erklären.
In Golang ist der Datentyp des Zeichens Rune, ein Alias des Typs int32. Wenn wir daher ein Zeichenarray definieren, sollte sein Elementtyp Rune sein.
var arr []rune
In Golang können Sie die Funktion len() verwenden, um die Länge einer Zeichenfolge abzurufen, aber die Länge der Zeichenfolge entspricht nicht der Anzahl der darin enthaltenen Zeichen. Da ein Unicode-Zeichen aus mehreren Bytes bestehen kann, entspricht die Länge einer Zeichenfolge häufig nicht der Anzahl der darin enthaltenen Zeichen. Um eine Zeichenfolge korrekt in ein Array von Zeichen umzuwandeln, sollten wir die Funktionen im Paket unicode/utf8 verwenden, um die Anzahl der Zeichen zu zählen, die die Zeichenfolge enthält.
import "unicode/utf8" func countChars(s string) int { return utf8.RuneCountInString(s) } length := countChars("Hello, world!") arr := make([]rune, length)
Golang bietet zwei Funktionen zum Konvertieren einer Zeichenfolge in ein Zeichenarray: []rune() und []byte(). Unter anderem konvertiert []rune() eine Zeichenfolge in ein Array vom Typ Rune, wobei jedes Zeichen 4 Bytes belegt; []byte() konvertiert eine Zeichenfolge in ein Array vom Typ Byte, jedes Zeichen belegt 1 Byte, es können jedoch verstümmelte Zeichen auftreten .
s := "Hello, 世界" arr := []rune(s) // 将字符串s转换成rune类型的数组
Der vollständige Code lautet wie folgt:
package main import ( "fmt" "unicode/utf8" ) func countChars(s string) int { return utf8.RuneCountInString(s) } func main() { s := "Hello, 世界" length := countChars(s) arr := make([]rune, length) for i, c := range s { arr[i] = c } fmt.Println(arr) }
Die laufenden Ergebnisse lauten wie folgt:
[72 101 108 108 111 44 32 19990 30028]
Durch die Einführung dieses Artikels haben wir gelernt, wie man in Golang eine Zeichenfolge in ein Zeichenarray umwandelt. Dies ist hilfreich für die Arbeit mit Textdaten und die Implementierung von Algorithmen für Zeichenfolgen.
Das obige ist der detaillierte Inhalt vonGolang-Zeichen zum Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!