golang runes 字符串 互转

博客介绍了字符串与runes的转换。字符串转runes会得到含Unicode码位的新切片,无效UTF - 8序列有对应值;runes转字符串是将runes转为UTF - 8编码字符串的串联,超出有效范围的值会转换为替换字符。转换会创建新切片或字符串,时间复杂度与字节数成正比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

字符串转runes

runes转字符串

性能


字符串转runes

  • 将字符串转换为 rune 切片时,会得到一个新的切片,其中包含字符串的 Unicode 码位( runes )
  • 对于无效的 UTF-8 序列,每个无效字节的 rune 值将为 0xFFFD
r := []rune("ABC€")
fmt.Println(r)        // [65 66 67 8364]
fmt.Printf("%U\n", r) // [U+0041 U+0042 U+0043 U+20AC]

您还可以使用 range 循环访问字符串的码位。

runes转字符串

  • 当您将一小段 runes 转换为字符串时,会得到一个新字符串,该字符串是将 runes 转换为 UTF-8 编码字符串的串联。
  • 有效 Unicode 码位范围之外的值将转换为 Unicode 替换字符\uFFFD, 显示为�。
s := string([]rune{'\u0041', '\u0042', '\u0043', '\u20AC', -1})
fmt.Println(s) // ABC€�

性能

这些转换将创建一个新的切片或字符串,因此时间复杂度与处理的字节数成正比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值