zoukankan      html  css  js  c++  java
  • Go 修改字符串中的字符(中文乱码)

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

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

    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
    }
    

    运行效果:

    大好世界
    
    每天都要遇到更好的自己.
  • 相关阅读:
    NSCache
    编译器 perforSelecter时 警告去除
    常用git命令
    LINUX系统自动化部署shell脚本
    个人工作总结10
    个人工作总结09
    个人工作总结-8
    个人工作总结07
    第八周学习进度
    对搜狗输入法的一些评价
  • 原文地址:https://www.cnblogs.com/kaichenkai/p/10958939.html
Copyright © 2011-2022 走看看