我需要在Go中切一个字符串.有时我有拉丁字符,否则我有阿拉伯语字符,但阿拉伯语的[:1]返回不同的值.
package main
import "fmt"
func main() {
a := "a"
fmt.Println(a[:1]) // work
b := "?"
fmt.Println(b[:1]) // not work
fmt.Println(b[:2]) // work
fmt.Println(len(a) == len(b)) // false
}
Run Code Online (Sandbox Code Playgroud)
Sal*_*ali 11
首先,你应该真正阅读Go中的字符串,字节和符文.
以下是你如何实现你想要的东西:( Go playground我无法正确粘贴阿拉伯符号,但如果中文有效,阿拉伯语也应该有效).
s := "abcdefghijklmnop"
fmt.Println(s[2:9])
s = "????:????????"
fmt.Println(string([]rune(s)[2:9]))
Run Code Online (Sandbox Code Playgroud)
输出是:
cdefghi
??:????
Run Code Online (Sandbox Code Playgroud)