转换为rune slice之后,一个中文就是一个“字符”, 所以你可以一个一个的替换,取出等操作。
func SubString(str string@H_502_6@,begin@H_502_6@,length int@H_502_6@) string@H_502_6@ {
fmt.Println("Substring ="@H_502_6@,str)
rs := []rune(str)
lth := len(rs)
fmt.Printf("begin=%d,end=%d,lth=%d\n"@H_502_6@,length,lth)
if@H_502_6@ begin@H_502_6@ < 0@H_502_6@ {
begin@H_502_6@ = 0@H_502_6@
}
if@H_502_6@ begin@H_502_6@ >= lth {
begin@H_502_6@ = lth
}
end@H_502_6@ := begin@H_502_6@ + length
if@H_502_6@ end@H_502_6@ > lth {
end@H_502_6@ = lth
}
fmt.Printf("begin=%d,lth)
return string@H_502_6@(rs[begin@H_502_6@:end@H_502_6@])
}