6
如何知道字符串中的子字符串的位置,字符(或符號)而不是字節?Go中的字符串中的位置
strings.Index(s, sub)
將以字節爲單位給出位置。當使用Unicode時,它不會在符文匹配的位置:http://play.golang.org/p/DnlFjPaD2j
func main() {
s := "áéíóúÁÉÍÓÚ"
fmt.Println(strings.Index(s, "ÍÓ"))
}
結果:14預期:7
當然,我可以s
和sub
轉換爲[]rune
和手動查找子切片,但有沒有更好的方法來做到這一點?
與此相關,獲取第一個n
字符串的字符我這樣做:string([]rune(s)[:n])
。這是最好的方法嗎?