• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go修改字符串中的字符(中文乱码)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

问题复现:修改字符串的第一个中文

先对原字符串做切片,然后进行拼接,得到新的字符串

func ModifyString(str string) string {
    tempStr := str[1:]
    str = "大" + tempStr
    return str
}

func main(){
    ret := ModifyString("你好世界")
    fmt.Println(ret)
}

运行效果:

大��好世界

切片默认是根据 byte 进行切割的,中文是 3 个 byte 组成,导致上面残留两个多余的 byte

 

解决方法:

那么在切片时指定 3 个 byte 尝试下:

func ModifyString(str string) string {
    tempStr := str[3:]
    str = "大" + tempStr
    return str
}

运行效果:

大好世界

 

另外一种方式:

步骤:

  1. 先把字符串变成字符数组
  2. 然后通过数组改变索引对应的值
  3. 然后将数组转成新的字符串
func ModifyString(str string) string {
    strArray := []rune(str)

    strArray[0] = '大'

    str = string(strArray)

    return str
}

运行效果:

大好世界

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
打包前端WebSite到Go程序发布时间:2022-07-10
下一篇:
Go语言汇编发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap