在 Golang 中将符文转换为字符串
您担心将符文转换为字符串并打印它,遇到未定义的字符。让我们深入研究这个问题并找到解决方案。
首先,在您的原始代码中,您使用 Scanner.Scan() 来读取符文。但是,此方法旨在处理具有特殊令牌值的令牌或符文,而不是实际读取的符文本身。
要读取单个符文,您应该使用 Scanner.Next():
c := b.Next() fmt.Println(c, string(c), strconv.QuoteRune(c))
此代码现在将正确读取并打印符文作为整数、其字符表示形式及其引用版本。
或者,如果您如果想要简单地将符文转换为字符串,可以使用简单的类型转换。 Rune 是 int32 的别名,将整数转换为字符串会生成其 UTF-8 表示形式。
r := rune('a') fmt.Println(r, string(r))
要迭代字符串的 rune,可以使用 for ... range 循环:
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) }
您还可以使用以下命令将字符串转换为符文切片[]rune("abc")。
另一个选项是使用 utf8.DecodeRuneInString()。
在使用 Scanner.Scan() 的原始代码中,您无意中将扫描仪的模式配置为处理 Go 令牌,其中包括像“a”这样的标识符。调用 Scan() 然后返回 Scanner.Ident 并打印标识符的文本,导致未定义的字符。
以上是如何在 Golang 中将符文转换为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!