Caractères dans une chaîne de caractères
Dans la section précédente sur les structures de données de base, nous avons appris qu'une chaîne de caractères est une collection de caractères. Par conséquent, nous pouvons utiliser l'index pour récupérer des caractères spécifiques dans une chaîne de caractères. Créons un fichier string.go
et écrivons le code suivant dedans :
cd ~/project
touch string.go
package main
import "fmt"
func main() {
s := "labex"
// Accéder à chaque caractère dans la chaîne de caractères en utilisant les indices
fmt.Println(s[0], s[1], s[2], s[3], s[4])
// Afficher les caractères
fmt.Printf("%c %c %c %c %c\n", s[0], s[1], s[2], s[3], s[4])
}
Exécutez le programme :
go run string.go
La sortie est la suivante :
108 97 98 101 120
l a b e x
Dans ce programme, nous déclarons une variable de type chaîne de caractères pour stocker "labex" et utilisons l'index pour accéder à chaque caractère dans la chaîne de caractères. Lors de l'affichage, nous constatons que le programme affiche des nombres au lieu des caractères réels.
En comparant la table ASCII suivante, nous pouvons voir que les nombres correspondent aux caractères réels. Par exemple, dans la table ASCII, "108" correspond à "l".
Cela s'explique par le fait que les caractères stockent en réalité le codage numérique de chaque caractère sous l'encodage "UTF-8". "UTF-8" est compatible avec "ASCII", donc la position du caractère "l" stocke en réalité le codage numérique "108".
Si nous voulons afficher des caractères, nous pouvons utiliser la fonction fmt.Printf
avec la séquence d'échappement %c
pour les afficher sous forme de caractères. Cela est démontré dans la deuxième ligne du code. Elle convertira le codage numérique en caractères puis les affichera.
Pour accéder à chaque caractère dans la chaîne de caractères du fichier string.go
, nous devons déclarer un index à chaque fois. Cela sera fastidieux lorsqu'il s'agit de traiter des centaines ou des milliers de données. Dans ce cas, nous pouvons utiliser une boucle for
pour effectuer l'opération.