首页 > 后端开发 > Golang > 正文

如何在 Go 中将 Rune 转换为字符串?

Barbara Streisand
发布: 2024-11-19 11:45:03
原创
343 人浏览过

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

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)
登录后复制

替代方法

将符文转换为字符串的其他方法包括:

  • utf8.DecodeRuneInString(): 从提供的字符串中解码单个 UTF-8 编码的符文。
  • []rune(): 将字符串转换为符文切片。

以上是如何在 Go 中将 Rune 转换为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板