Go 中的符文到字符串转换
在 Go 中使用 Unicode 字符时,您可能会遇到需要转换符文的情况(表示 Unicode 字符的整数)转换为字符串。这可能会令人困惑,因为 Go 提供了多种方法来完成此任务。
使用 Scanner.Scan() (不正确)
在您提供的代码中,您可以使用Scanner.Scan() 将符文转换为字符串。但是,这种方法是不正确的,因为 Scanner.Scan() 旨在用于词法分析目的,并且不直接返回符文字符。相反,它返回一个指示令牌类型的常量(例如scanner.Ident或scanner.Int)。
使用Scanner.Next()(正确)
到正确地将符文转换为字符串,您应该使用 Scanner.Next() 代替。该函数从输入中读取下一个符文并将其作为整数返回。然后,您可以使用 strconv.QuoteRune() 函数将符文转换为字符串。
var b scanner.Scanner const a = `a` b.Init(strings.NewReader(a)) c := b.Next() fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"
直接符文到字符串转换
如果您想简单地将单个符文转换为字符串,可以使用类型转换。 Rune 是 int32 的别名,Go 支持使用内置 string() 函数将整数值转换为字符串。
r := rune('a') fmt.Println(string(r)) // Output: "a"
循环 Runes
到迭代字符串中的符文,您可以使用 for ... range 构造。此技术返回字符串中每个字符的索引和符文值。
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) } // Output: // 0 - a (97) // 1 - b (98) // 2 - c (99)
替代方法
将符文转换为字符串的其他方法包括:
以上是如何在 Go 中将 Rune 转换为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!