golang 截取字符串的方法

编辑整理:
老秦
热度:
6967

​Go截取字符串

Go 截取字符串的几种方法dc1fd


cd7


字节切片截取09db8

只支持非中文,高效简单,没有中文时首选。2c9ca5c

s := "kasjdkfaskdfjskldjlgjksskdf"73720a

fmt.Println(s[1:4])73720a


[]rune09db8

转换为 []rune,然后按切片语法截取,再把结果转成字符串2c9ca5c

支持中文,性能一般点。

00ca

s := "Go 语言 鼓励考生的开发接口说道"cd7

rs := []rune(s)8f59

fmt.Println(strings(rs[1:4]))8f59


utf8.DecodeRuneInString09db8

import "unicode/utf8"包2c9ca5c

utf8.DecodeRuneInString 函数可以转换单个字符,并给出字符占用字节的数量cd7


73720a

//截取字符串,指定长度,支持中文73720a

func SubStr(str string, length int) string {09db8

var size, n int

00ca

for i := 0; i < length && n < len(str); i++ {

00ca

_, size = utf8.DecodeRuneInString(str[n:])www.9lyp.com

n += sizecd7

}2c9ca5c

return str[:n]

00ca

}8f59



cd7


dc1fd73720a