Par exemple, j'ai une chaîne de caractères, composée de "sample.zip". Comment puis-je supprimer l'extension ".zip" en utilisant le paquet strings ou autre ?
Réponses
Trop de publicités?Edit : Go est passé à autre chose. Veuillez voir Réponse de Keith .
Utilice chemin/filepath.Ext pour obtenir l'extension. Vous pouvez ensuite utiliser la longueur de l'extension pour récupérer la sous-chaîne moins l'extension.
var filename = "hello.blah"
var extension = filepath.Ext(filename)
var name = filename[0:len(filename)-len(extension)]
Vous pouvez également utiliser strings.LastIndex pour trouver la dernière période (.) mais cela peut être un peu plus fragile dans la mesure où il y aura des cas limites (par exemple pas d'extension) que filepath.Ext
que vous devrez peut-être coder explicitement, ou si Go devait être exécuté sur un O/S théorique qui utilise un délimiteur d'extension autre que le point.
J'utilise go1.14.1, filepath.Ext
n'a pas fonctionné pour moi, path.Ext
fonctionne bien pour moi
var fileName = "hello.go"
fileExtension := path.Ext(fileName)
n := strings.LastIndex(fileName, fileExtension)
fmt.Println(fileName[:n])
Terrain de jeux : https://play.golang.org/p/md3wAq_obNc
Documnetation : https://golang.org/pkg/path/#Ext
- Réponses précédentes
- Plus de réponses