strings - ¿Cómo obtener los últimos X Caracteres de una Cadena Golang?
substring golang (2)
Si tengo la cadena "12121211122" y quiero obtener los últimos 3 caracteres (por ejemplo, "122"), ¿es posible en Go? He buscado en el paquete de string
y no he visto nada parecido a getLastXcharacters
.
La respuesta depende de lo que quiere decir con "personajes". Si te refieres a bytes entonces:
s := "12121211122"
lastByByte := s[len(s)-3:]
Si quieres decir runas en una cadena codificada en utf-8, entonces:
s := "12121211122"
j := len(s)
for i := 0; i < 3 && j > 0; i++ {
_, size := utf8.DecodeLastRuneInString(s[:j])
j -= size
}
lastByRune := s[j:]
También puede convertir la cadena en una [] runa y operar en la división de la runa, pero eso asigna memoria.
Puede usar una expresión de sector en una cadena para obtener los últimos tres bytes.
s := "12121211122"
first3 := s[0:3]
last3 := s[len(s)-3:]
O si está usando unicode, puede hacer algo como:
s := []rune("世界世界世界")
first3 := string(s[0:3])
last3 := string(s[len(s)-3:])
Compruebe Cadenas, bytes, runas y caracteres en Go y Slice Tricks .