Buscamos en distintos sitios y de este modo regalarte la respuesta a tu problema, en caso de dudas deja un comentario y te responderemos porque estamos para ayudarte.
Solución:
Use una expresión de corte:
s = s[1 : len(s)-1]
Si existe la posibilidad de que las comillas no estén presentes, utilice esto:
if len(s) > 0 && s[0] == '"'
s = s[1:]
if len(s) > 0 && s[len(s)-1] == '"'
s = s[:len(s)-1]
ejemplo de patio de recreo
Puede aprovechar las divisiones para eliminar el primer y el último elemento de la división.
package main
import "fmt"
func main()
str := `"hello""world"`
if str[0] == '"'
str = str[1:]
if i := len(str)-1; str[i] == '"'
str = str[:i]
fmt.Println( str )
Dado que un segmento comparte la memoria subyacente, esto no copia el string. Solo cambia el str
slice para comenzar un carácter de nuevo y terminar un carácter antes.
Así es como funcionan las distintas funciones bytes.Trim.
Utilice expresiones de división. Debe escribir un código robusto que proporcione una salida correcta para una entrada imperfecta. Por ejemplo,
package main
import "fmt"
func trimQuotes(s string) string
if len(s) >= 2
if s[0] == '"' && s[len(s)-1] == '"'
return s[1 : len(s)-1]
return s
func main()
tests := []string
`"hello""world"`,
`"""hello"""`,
`"`,
`""`,
`"""`,
`goodbye"`,
`"goodbye"`,
`goodbye"`,
`good"bye`,
for _, test := range tests
fmt.Printf("`%s` -> `%s`n", test, trimQuotes(test))
Producción:
`"hello""world"` -> `hello""world`
`"""hello"""` -> `""hello""`
`"` -> `"`
`""` -> ``
`"""` -> `"`
`goodbye"` -> `goodbye"`
`"goodbye"` -> `goodbye`
`goodbye"` -> `goodbye"`
`good"bye` -> `good"bye`