Heim > Backend-Entwicklung > Golang > Wie konvertiere ich eine Rune in Go in eine Zeichenfolge?

Wie konvertiere ich eine Rune in Go in eine Zeichenfolge?

Barbara Streisand
Freigeben: 2024-11-19 11:45:03
Original
377 Leute haben es durchsucht

How do I Convert a Rune to a String in Go?

Rune-zu-String-Konvertierung in Go

Beim Arbeiten mit Unicode-Zeichen in Go kann es vorkommen, dass Sie eine Rune konvertieren müssen ( eine Ganzzahl, die ein Unicode-Zeichen darstellt) in eine Zeichenfolge. Dies kann verwirrend sein, da Go mehrere Ansätze für diese Aufgabe bietet.

Verwendung von Scanner.Scan() (falsch)

In Ihrem bereitgestellten Code müssen Sie ihn verwenden Scanner.Scan() zum Konvertieren einer Rune in eine Zeichenfolge. Dieser Ansatz ist jedoch falsch, da Scanner.Scan() für Lexing-Zwecke gedacht ist und das Runenzeichen nicht direkt zurückgibt. Stattdessen wird eine Konstante zurückgegeben, die den Token-Typ angibt (z. B. scanner.Ident oder scanner.Int).

Verwenden von Scanner.Next() (Richtig)

Zu Um eine Rune ordnungsgemäß in eine Zeichenfolge umzuwandeln, sollten Sie stattdessen Scanner.Next() verwenden. Diese Funktion liest die nächste Rune aus der Eingabe und gibt sie als Ganzzahl zurück. Sie können dann die Funktion strconv.QuoteRune() verwenden, um die Rune in eine Zeichenfolge umzuwandeln.

var b scanner.Scanner
const a = `a`
b.Init(strings.NewReader(a))
c := b.Next()
fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"
Nach dem Login kopieren

Direkte Rune-zu-String-Konvertierung

Wenn Sie es einfach möchten Um eine einzelne Rune in eine Zeichenfolge umzuwandeln, können Sie eine Typkonvertierung verwenden. Rune ist ein Alias ​​für int32, und Go unterstützt die Konvertierung ganzzahliger Werte in Zeichenfolgen mithilfe der integrierten Funktion string().

r := rune('a')
fmt.Println(string(r)) // Output: "a"
Nach dem Login kopieren

Looping Over Runes

To Wenn Sie die Runen in einer Zeichenfolge durchlaufen möchten, können Sie das Konstrukt for ... range verwenden. Diese Technik gibt sowohl den Index als auch den Runenwert für jedes Zeichen in der Zeichenfolge zurück.

for i, r := range "abc" {
    fmt.Printf("%d - %c (%v)\n", i, r, r)
}

// Output:
// 0 - a (97)
// 1 - b (98)
// 2 - c (99)
Nach dem Login kopieren

Alternative Methoden

Andere Methoden zum Konvertieren von Runen in Zeichenfolgen umfassen:

  • utf8.DecodeRuneInString(): Dekodiert eine einzelne UTF-8-codierte Rune aus der bereitgestellten Zeichenfolge.
  • []rune(): Wandelt eine Zeichenfolge in ein Runenstück um.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Rune in Go in eine Zeichenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage