Go语言修改字符串内容

在 Go 语言中,字符串的内容是不能修改的,也就是说,你不能用 s[0] 这种方式修改字符串中的 UTF-8 编码,如果你一定要修改,那么你可以将字符串的内容复制到一个可写的缓冲区中,然后再进行修改。这样的缓冲区一般是 []byte 或 []rune。如果要对字符串中的字节进行修改,则转换为 []byte 格式,如果要对字符串中的字符进行修改,则转换为 []rune 格式,转换过程会自动复制数据。

修改字符串中的字节(用 []byte):

func main() {

s := “Hello 世界!”

b := []byte(s) // 转换为 []byte,自动复制数据

b[5] = ‘,’ // 修改 []byte

fmt.Printf("%s\n", s) // s 不能被修改,内容保持不变

fmt.Printf("%s\n", b) // 修改后的数据

}

修改字符串中的字符(用 []rune):

func main() {

s := “Hello 世界!”

r := []rune(s) // 转换为 []rune,自动复制数据

r[6] = ‘中’ // 修改 []rune

r[7] = ‘国’ // 修改 []rune

fmt.Println(s) // s 不能被修改,内容保持不变

fmt.Println(string®) // 转换为字符串,又一次复制数据

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值