Heim > Backend-Entwicklung > Golang > Golang-Zeichen zum Array

Golang-Zeichen zum Array

WBOY
Freigeben: 2023-05-12 20:34:35
Original
818 Leute haben es durchsucht

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:

  • Was ist der Elementtyp des Zeichenarrays?
  • Wie lang ist das Zeichenarray?
  • Wie konvertiere ich eine Zeichenfolge in ein Zeichenarray?

Wir werden sie im Folgenden einzeln erklären.

  1. Elementtyp des Zeichenarrays

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
Nach dem Login kopieren
  1. Die Länge des Zeichenarrays

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)
Nach dem Login kopieren
  1. Konvertieren Sie eine Zeichenfolge in ein Zeichenarray

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类型的数组
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

Die laufenden Ergebnisse lauten wie folgt:

[72 101 108 108 111 44 32 19990 30028]
Nach dem Login kopieren

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!

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