Saltar al contenido

Cómo eliminar las comillas de alrededor de un string en Golang

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`

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *