Maison > développement back-end > Golang > le corps du texte

Comment obtenir la valeur Unicode d'un caractère dans Go ?

Mary-Kate Olsen
Libérer: 2024-11-04 07:36:01
original
550 Les gens l'ont consulté

How to Get the Unicode Value of a Character in Go?

Go équivalent à la méthode charCodeAt() de JavaScript

La méthode charCodeAt() en JavaScript récupère la valeur numérique Unicode d'un caractère à un endroit spécifique index dans une chaîne. Par exemple :

<code class="javascript">"s".charCodeAt(0) // returns 115</code>
Copier après la connexion

Dans Go, le type de caractère est rune, qui est un alias de int32 et lui-même est un nombre. Par conséquent, vous pouvez obtenir la valeur numérique Unicode en imprimant directement.

Pour obtenir le caractère à une position spécifiée, le moyen le plus simple est de convertir la chaîne en []rune puis d'utiliser l'index. La façon de convertir une chaîne en rune est la conversion de type []rune("some string"):

<code class="go">fmt.Println([]rune("s")[0])</code>
Copier après la connexion

Sortie :

115
Copier après la connexion

Pour imprimer sous forme de caractères, utilisez le % Chaîne de caractères au format c :

<code class="go">fmt.Println([]rune("absdef")[2])      // Also prints 115
fmt.Printf("%c", []rune("absdef")[2]) // Prints s</code>
Copier après la connexion

De plus, la plage for de la chaîne parcourt les runes de la chaîne, vous pouvez donc également l'utiliser. Par rapport à sa conversion en []rune, cette méthode est plus efficace :

<code class="go">i := 0
for _, r := range "absdef" {
    if i == 2 {
        fmt.Println(r)
        break
    }
    i++
}</code>
Copier après la connexion

Notez que le compteur i doit être un compteur séparé et ne peut pas être une variable d'itération de boucle, car pour les retours de plage, c'est la position de l'octet, pas l'index des runes (ils sont différents si la chaîne contient des caractères multi-octets en représentation UTF-8).

est enveloppé dans une fonction :

<code class="go">func charCodeAt(s string, n int) rune {
    i := 0
    for _, r := range s {
        if i == n {
            return r
        }
        i++
    }
    return 0
}</code>
Copier après la connexion

Enfin, veuillez noter que les chaînes dans Go sont stockées dans []byte, qui est une séquence d'octets de texte codée en UTF-8 (lire le blog Voir l'article "Chaînes, octets, runes et caractères dans Go" pour plus d'informations). S'il est garanti que la chaîne utilise des caractères avec des codes inférieurs à 127, vous pouvez utiliser directement des octets. c'est-à-dire que l'indexation d'une chaîne dans Go indexe ses octets, par exemple "s"[0] est la valeur d'octet 115 du caractère "s".

<code class="go">fmt.Println("s"[0])      // Prints 115
fmt.Println("absdef"[2]) // Prints 115</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!