在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题复现:修改字符串的第一个中文 先对原字符串做切片,然后进行拼接,得到新的字符串 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 } 运行效果: 大好世界
另外一种方式: 步骤:
func ModifyString(str string) string { strArray := []rune(str) strArray[0] = '大' str = string(strArray) return str } 运行效果: 大好世界
|
请发表评论