如何获取Golang字符串的最后X个字符?

时间:2014-10-02 17:55:47

标签: string go character

如果我有字符串" 12121211122"我想得到最后3个字符(例如" 122"),这可能在Go?我查看了string包,没有看到getLastXcharacters之类的内容。

2 个答案:

答案 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:])

检查Strings, bytes, runes and characters in GoSlice Tricks

答案 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:]

您还可以将字符串转换为[]符文并对符文切片进行操作,但这会分配内存。