因为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])
}