sou*_*cey 50 string character go
如果我有字符串"12121211122"并且我想获得最后3个字符(例如"122"),那么Go中是否可以?我看了string
包裹,没有看到任何类似的东西getLastXcharacters
.
One*_*One 92
您可以在字符串上使用切片表达式来获取最后三个字节.
s := "12121211122"
first3 := s[0:3]
last3 := s[len(s)-3:]
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是unicode,您可以执行以下操作:
s := []rune("??????")
first3 := string(s[0:3])
last3 := string(s[len(s)-3:])
Run Code Online (Sandbox Code Playgroud)
检查Go和Slice Tricks中的字符串,字节,符文和字符.
Sim*_*Fox 12
答案取决于你对"人物"的意思.如果你的意思是字节然后:
s := "12121211122"
lastByByte := s[len(s)-3:]
Run Code Online (Sandbox Code Playgroud)
如果你的意思是utf-8编码字符串中的符文,那么:
s := "12121211122"
j := len(s)
for i := 0; i < 3 && j > 0; i++ {
_, size := utf8.DecodeLastRuneInString(s[:j])
j -= size
}
lastByRune := s[j:]
Run Code Online (Sandbox Code Playgroud)
您还可以将字符串转换为[]符文并对符文切片进行操作,但这会分配内存.