問題復現:修改字符串的第一個中文數組
先對原字符串作切片,而後進行拼接,獲得新的字符串blog
func ModifyString(str string) string { tempStr := str[1:] str = "大" + tempStr return str } func main(){ ret := ModifyString("你好世界") fmt.Println(ret) }
運行效果:索引
大��好世界
切片默認是根據 byte 進行切割的,中文是 3 個 byte 組成,致使上面殘留兩個多餘的 byte字符串
解決方法:string
那麼在切片時指定 3 個 byte 嘗試下:class
func ModifyString(str string) string { tempStr := str[3:] str = "大" + tempStr return str }
運行效果:方法
大好世界
另一種方式:di
步驟:字符
func ModifyString(str string) string { strArray := []rune(str) strArray[0] = '大' str = string(strArray) return str }
運行效果:中文
大好世界