Rune in String in Golang umwandeln
Sie haben Bedenken, eine Rune in einen String umzuwandeln und ihn auszudrucken, und stoßen dabei auf undefinierte Zeichen. Lassen Sie uns das Problem untersuchen und eine Lösung finden.
Zunächst haben Sie in Ihrem ursprünglichen Code Scanner.Scan() verwendet, um eine Rune zu lesen. Diese Methode ist jedoch darauf ausgelegt, Token oder Runen mit speziellen Tokenwerten zu verarbeiten, nicht die tatsächlich gelesene Rune selbst.
Um eine einzelne Rune zu lesen, sollten Sie stattdessen Scanner.Next() verwenden:
c := b.Next() fmt.Println(c, string(c), strconv.QuoteRune(c))
Dieser Code liest und druckt nun die Rune korrekt als Ganzzahl, ihre Zeichendarstellung und ihre zitierte Version.
Alternativ, wenn Sie möchten Um eine Rune einfach in eine Zeichenfolge umzuwandeln, können Sie eine einfache Typkonvertierung verwenden. Rune ist ein Alias für int32, und die Konvertierung von Ganzzahlen in Strings generiert deren UTF-8-Darstellung.
r := rune('a') fmt.Println(r, string(r))
Um über die Runen eines Strings zu iterieren, können Sie eine for ... Range-Schleife verwenden:
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) }
Sie können eine Zeichenfolge auch mit in ein Runenstück umwandeln []rune("abc").
Eine andere Option ist die Verwendung von utf8.DecodeRuneInString().
In Ihrem ursprünglichen Code mit Scanner.Scan() haben Sie versehentlich den Modus des Scanners auf konfiguriert Behandeln Sie Go-Tokens, die Bezeichner wie „a“ enthalten. Der Aufruf von Scan() gab dann scanner.Ident zurück und gab den Text der Kennung aus, was zu den undefinierten Zeichen führte.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Rune in Golang in eine Zeichenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!