6
바이트 대신 문자 (또는 룬 문자)로 문자열의 하위 문자열 위치를 어떻게 알 수 있습니까?Go에서 하위 문자열의 문자 위치 지정
strings.Index(s, sub)
은 바이트 단위로 위치를 제공합니다. 유니 코드를 사용하는 경우, 그것은 룬의 위치를 일치하지 않습니다 http://play.golang.org/p/DnlFjPaD2j
func main() {
s := "áéíóúÁÉÍÓÚ"
fmt.Println(strings.Index(s, "ÍÓ"))
}
결과 : (14) 예상 : 물론 7
, 나는 []rune
에 s
및 sub
을 변환하고 수동으로 subslice를 찾을 수 , 그것을 할 수있는 더 좋은 방법이 있습니까?
이와 관련하여 첫 번째 n
자의 문자열을 얻으려면 다음을 수행합니다. string([]rune(s)[:n])
. 그게 최선의 방법일까요?