如果我有字符串" 12121211122"我想得到最后3个字符(例如" 122"),这可能在Go?我查看了string
包,没有看到getLastXcharacters
之类的内容。
答案 0 :(得分:82)
您可以在字符串上使用slice expression来获取最后三个字节。
s := "12121211122"
first3 := s[0:3]
last3 := s[len(s)-3:]
或者如果您使用unicode,您可以执行以下操作:
s := []rune("世界世界世界")
first3 := string(s[0:3])
last3 := string(s[len(s)-3:])
答案 1 :(得分:11)
答案取决于你的意思"字符"。如果你的意思是字节,那么:
s := "12121211122"
lastByByte := s[len(s)-3:]
如果你的意思是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:]
您还可以将字符串转换为[]符文并对符文切片进行操作,但这会分配内存。