Probablement une chose idiote, mais je suis resté coincé dessus un peu ...
Impossible de couper un "["
char à partir d'une chaîne, ce que j'ai essayé avec les sorties:
package main
import (
"fmt"
"strings"
)
func main() {
s := "this[things]I would like to remove"
t := strings.Trim(s, "[")
fmt.Printf("%s\n", t)
}
// output: this[things]I would like to remove
J'ai également essayé tous ceux-ci, sans succès:
s := "this [ things]I would like to remove"
t := strings.Trim(s, " [ ")
// output: this [ things]I would like to remove
s := "this [ things]I would like to remove"
t := strings.Trim(s, "[")
// output: this [ things]I would like to remove
Aucun n'a fonctionné. Qu'est-ce que j'oublie ici?
Vous manquez de lire le doc. strings.Trim()
:
func Trim(s string, cutset string) string
Trim renvoie une tranche de la chaîne s avec tous points de code Unicode en tête et en fin contenus dans le cutset supprimés.
Le caractère [
Dans votre entrée n'est pas dans une position en tête ni dans une position en fin, il est en milieu, donc strings.Trim()
–être bien comportement– ne le supprimera pas.
Essayez à la place strings.Replace()
:
s := "this[things]I would like to remove"
t := strings.Replace(s, "[", "", -1)
fmt.Printf("%s\n", t)
Sortie (essayez-le sur le Go Playground ):
thisthings]I would like to remove
Il y a aussi un strings.ReplaceAll()
ajouté dans Go 1.12 (qui est fondamentalement un "raccourci" pour Replace(s, old, new, -1)
).