因为Go中字符串是以[]byte形式存储的,而Unicode字符中一个地方对应多个字节,所以不能直接进行便利,需要先将其转化为[]rune再进行操作
package chinese
var Chinese = new(chinese)
type chinese struct{}
// Len
/**
* @Description: 获取中文字符串长度
* @receiver c
* @param str
* @return int
*/
func (c chinese) Len(str string) int {
rt := []rune(str)
return len(rt)
}
// Cut
/**
* @Description: 截取中文字符串
* @receiver c
* @param str
* @param start
* @param end
* @return string
*/
func (c chinese) Cut(str string, start int, end int) string {
rt := []rune(str)
return string(rt[start:end])
}
本文介绍了在Go语言中如何处理Unicode字符的中文字符串。通过将字符串转化为[]rune,可以方便地进行长度计算和截取操作。示例代码展示了Len和Cut两个函数的实现,用于获取中文字符串长度和进行字符串截取。
749

被折叠的 条评论
为什么被折叠?



