Heim >Backend-Entwicklung >Golang >Wie kann ich effizient auf Zeichen in Go-Strings zugreifen und diese konvertieren?

Wie kann ich effizient auf Zeichen in Go-Strings zugreifen und diese konvertieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 06:22:13782Durchsuche

How to Efficiently Access and Convert Characters in Go Strings?

Zeichenindizierung in Golang-Strings

Go-Strings werden als Bytefolgen in der UTF-8-Codierung dargestellt. Um auf einzelne Zeichen zuzugreifen, die mehrere Bytes belegen können, kann man die String- oder []Rune-Konvertierung nutzen.

Zugriff auf ASCII-Zeichen

Im Beispiel:

fmt.Print("HELLO"[1])

Auf das Zeichen an Index 1 der Zeichenfolge „HELLO“ wird zugegriffen. Da ASCII-Zeichen nur ein Byte belegen, ist das Ergebnis der Bytewert 69.

Bytes in Zeichen umwandeln

Um den tatsächlichen Zeichenwert zu erhalten, kann das Byte konvertiert werden zu einer Zeichenfolge. Dies stellt eine ordnungsgemäße UTF-8-Verarbeitung sicher:

fmt.Println(string("Hello"[1])) // ASCII only

Zugriff auf Unicode-Zeichen

Für Unicode-Zeichen, die sich über mehrere Bytes erstrecken können, ist die []rune-Konvertierung erforderlich:

fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8

Runen umwandeln in Bytes

Um eine Rune zurück in ein Byte-Slice umzuwandeln, kann sie als Argument an []byte übergeben werden:

fmt.Println(string([]byte("Hello"))) // ASCII only

Referenzen:

  • [Gehen Sie zum Abschnitt „Programmiersprachenspezifikation“ weiter Konvertierungen](https://go.dev/ref/spec#Conversions)
  • [The Go Blog: Strings, Bytes, Runen und Zeichen in Go](https://blog.golang.org/strings -bytes-runes-and-characters-in-go)

Das obige ist der detaillierte Inhalt vonWie kann ich effizient auf Zeichen in Go-Strings zugreifen und diese konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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