Heim >Backend-Entwicklung >Golang >Wie erhalte ich den Unicode-Wert eines Zeichens in Go?

Wie erhalte ich den Unicode-Wert eines Zeichens in Go?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 07:36:01605Durchsuche

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

Go-Äquivalent der charCodeAt()-Methode von JavaScript

Die charCodeAt()-Methode in JavaScript ruft den numerischen Unicode-Wert eines Zeichens an einem bestimmten Ort ab Index innerhalb einer Zeichenfolge. Zum Beispiel:

<code class="javascript">"s".charCodeAt(0) // returns 115</code>

In Go ist der Zeichentyp rune, der ein Alias ​​von int32 ist und selbst eine Zahl ist. Daher können Sie den numerischen Unicode-Wert durch direktes Drucken erhalten.

Um das Zeichen an einer bestimmten Position zu erhalten, ist es am einfachsten, die Zeichenfolge in []rune zu konvertieren und dann den Index zu verwenden. Der Weg, eine Zeichenfolge in eine Rune umzuwandeln, ist die Typkonvertierung []rune("some string"):

<code class="go">fmt.Println([]rune("s")[0])</code>

Ausgabe:

115

Um als Zeichen zu drucken, verwenden Sie % Zeichenkette im C-Format:

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

Darüber hinaus iteriert der for-Bereich für die Zeichenfolge über die Runen in der Zeichenfolge, sodass Sie ihn auch verwenden können. Im Vergleich zur Konvertierung in []rune ist diese Methode effizienter:

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

Beachten Sie, dass der Zähler i ein separater Zähler sein muss und keine Schleifeniterationsvariable sein darf, da es sich bei Bereichsrückgaben um die Byteposition handelt. nicht der Runenindex (sie unterscheiden sich, wenn die Zeichenfolge Multibyte-Zeichen in UTF-8-Darstellung enthält).

wird in eine Funktion eingeschlossen:

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

Schließlich beachten Sie bitte, dass Zeichenfolgen in Go in []Byte gespeichert werden, was eine UTF-8-codierte Bytesequenz von Text ist (lesen Sie die Blog Weitere Informationen finden Sie im Artikel „Strings, Bytes, Runen und Zeichen in Go“. Wenn garantiert ist, dass die Zeichenfolge Zeichen mit Codes unter 127 verwendet, können Sie Bytes direkt verwenden. Das heißt, die Indizierung einer Zeichenfolge in Go indiziert ihre Bytes, z. B. ist „s“[0] der Bytewert 115 des Zeichens „s“.

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

Das obige ist der detaillierte Inhalt vonWie erhalte ich den Unicode-Wert eines Zeichens in Go?. 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