Golang est un langage de programmation lancé par Google. Son objectif de conception est d'améliorer l'efficacité et la maintenabilité du développement logiciel. Dans Golang, les caractères et les chaînes sont deux types de données différents, mais nous rencontrons souvent le besoin de convertir une chaîne en un tableau de caractères. Cet article explique comment convertir des caractères en tableaux dans Golang.
Dans Golang, les notions de caractères et de chaînes sont relativement claires. Un caractère est un point de code Unicode et occupe 4 octets ; tandis qu'une chaîne est une séquence de plusieurs caractères, codée en UTF-8, et chaque caractère occupe 1 à 4 octets. Par conséquent, lorsque nous devons convertir une chaîne en un tableau de caractères, nous devons nous poser les questions suivantes :
Nous les expliquerons un par un ci-dessous.
Dans Golang, le type de données du caractère est rune, qui est un alias de type int32. Par conséquent, lorsque nous définissons un tableau de caractères, son type d’élément doit être rune.
var arr []rune
Dans Golang, vous pouvez utiliser la fonction len() pour obtenir la longueur d'une chaîne, mais la longueur de la chaîne n'est pas égale au nombre de caractères qu'elle contient. Étant donné qu'un caractère Unicode peut être composé de plusieurs octets, la longueur d'une chaîne n'est souvent pas la même que le nombre de caractères qu'elle contient. Afin de convertir correctement une chaîne en un tableau de caractères, nous devons utiliser les fonctions du package unicode/utf8 pour compter le nombre de caractères que contient la chaîne.
import "unicode/utf8" func countChars(s string) int { return utf8.RuneCountInString(s) } length := countChars("Hello, world!") arr := make([]rune, length)
Golang fournit deux fonctions pour convertir une chaîne en tableau de caractères : []rune() et []byte(). Parmi eux, []rune() convertit une chaîne en un tableau de type rune, chaque caractère occupe 4 octets ; []byte() convertit une chaîne en un tableau de type octet, chaque caractère occupe 1 octet, mais des caractères tronqués peuvent apparaître .
s := "Hello, 世界" arr := []rune(s) // 将字符串s转换成rune类型的数组
Le code complet est le suivant :
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) }
Les résultats d'exécution sont les suivants :
[72 101 108 108 111 44 32 19990 30028]
Grâce à l'introduction de cet article, nous avons appris comment convertir une chaîne en un tableau de caractères dans Golang. Ceci est utile pour travailler avec des données texte et implémenter des algorithmes sur des chaînes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!