introduction
Le packagestring
de Go a plusieurs fonctions disponibles pour travailler avec lesstring data type. Ces fonctions nous permettent de modifier et de manipuler facilement des chaînes. Nous pouvons considérer les fonctions comme des actions que nous effectuons sur des éléments de notre code. Les fonctions intégrées sont celles qui sont définies dans le langage de programmation Go et que nous pouvons facilement utiliser.
Dans ce didacticiel, nous allons passer en revue différentes fonctions que nous pouvons utiliser pour manipuler des chaînes dans Go.
Faire des cordes en majuscules et minuscules
Les fonctionsstrings.ToUpper
etstrings.ToLower
renverront une chaîne avec toutes les lettres d'une chaîne d'origine convertie en majuscules ou minuscules. Les chaînes étant des types de données immuables, la chaîne renvoyée sera une nouvelle chaîne. Les caractères de la chaîne qui ne sont pas des lettres ne seront pas modifiés.
Pour convertir la chaîne"Sammy Shark"
en majuscules, vous utiliseriez la fonctionstrings.ToUpper
:
ss := "Sammy Shark"
fmt.Println(strings.ToUpper(ss))
OutputSAMMY SHARK
Pour convertir en minuscules:
fmt.Println(strings.ToLower(ss))
Outputsammy shark
Puisque vous utilisez le packagestrings
, vous devez d'abord l'importer dans un programme. Pour convertir la chaîne en majuscules et minuscules, le programme entier serait comme suit:
package main
import (
"fmt"
"strings"
)
func main() {
ss := "Sammy Shark"
fmt.Println(strings.ToUpper(ss))
fmt.Println(strings.ToLower(ss))
}
Les fonctionsstrings.ToUpper
etstrings.ToLower
facilitent l'évaluation et la comparaison des chaînes en rendant la casse cohérente. Par exemple, si un utilisateur écrit son nom en minuscule, nous pouvons toujours déterminer s'il figure dans notre base de données en le comparant à une version entièrement en majuscule.
Fonctions de recherche de chaîne
Le packagestrings
a un certain nombre de fonctions qui aident à déterminer si une chaîne contient une séquence spécifique de caractères.
Une fonction | Use |
---|---|
|
Recherche la chaîne depuis le début |
|
Recherche la chaîne à partir de la fin |
|
Recherche n'importe où dans la chaîne |
|
Compte le nombre de fois où la chaîne apparaît |
Lesstrings.HasPrefix
etstrings.HasSuffix
vous permettent de vérifier si une chaîne commence ou se termine par un ensemble spécifique de caractères.
Par exemple, pour vérifier si la chaîne"Sammy Shark"
commence parSammy
et se termine parShark
:
ss := "Sammy Shark"
fmt.Println(strings.HasPrefix(ss, "Sammy"))
fmt.Println(strings.HasSuffix(ss, "Shark"))
Outputtrue
true
Vous utiliseriez la fonctionstrings.Contains
pour vérifier si"Sammy Shark"
contient la séquenceSh
:
fmt.Println(strings.Contains(ss, "Sh"))
Outputtrue
Enfin, pour voir combien de fois la lettreS
apparaît dans la phraseSammy Shark
:
fmt.Println(strings.Count(ss, "S"))
Output2
[.note] #Note: Toutes les chaînes de Go sont sensibles à la casse. Cela signifie queSammy
n'est pas le même quesammy
.
#
Utiliser uns
minuscule pour obtenir un décompte deSammy Shark
n'est pas la même chose que d'utiliser desS
majuscules:
fmt.Println(strings.Count(ss, "s"))
Output0
Étant donné queS
est différent des
, le décompte renvoyé sera0
.
Les fonctions de chaîne sont utiles lorsque vous souhaitez comparer ou rechercher des chaînes dans votre programme.
Détermination de la longueur de la chaîne
La fonction intégréelen()
renvoie le nombre de caractères dans une chaîne. Cette fonction est utile lorsque vous devez imposer des longueurs de mot de passe minimales ou maximales ou tronquer des chaînes plus volumineuses afin qu'elles ne dépassent pas certaines limites et que vous puissiez les utiliser comme abréviations.
Pour illustrer cette fonction, nous allons trouver la longueur d’une chaîne longue d’une phrase:
import (
"fmt"
"strings"
)
func main() {
openSource := "Sammy contributes to open source."
fmt.Println(len(openSource))
}
Output33
Nous définissons la variableopenSource
égale à la chaîne"Sammy contributes to open source."
, puis passons cette variable à la fonctionlen()
aveclen(openSource)
. Enfin, nous avons passé la fonction dans la fonctionfmt.Println()
afin que nous puissions voir la sortie du programme à l’écran.
Gardez à l'esprit que la fonctionlen()
comptera tous les caractères reliés par des guillemets doubles, y compris les lettres, les chiffres, les espaces et les symboles.
Fonctions pour la manipulation de chaîne
Les fonctionsstrings.Join
,strings.Split
etstrings.ReplaceAll
sont quelques moyens supplémentaires de manipuler des chaînes dans Go.
La fonctionstrings.Join
est utile pour combiner une tranche de chaînes en une nouvelle chaîne unique.
Pour créer une chaîne séparée par des virgules à partir d'une tranche de chaînes, nous utiliserions cette fonction comme suit:
fmt.Println(strings.Join([]string{"sharks", "crustaceans", "plankton"}, ","))
Outputsharks,crustaceans,plankton
Si nous voulons ajouter une virgule et un espace entre les valeurs de chaîne dans notre nouvelle chaîne, nous pouvons simplement réécrire notre expression avec un espace après la virgule:strings.Join([]string{"sharks", "crustaceans", "plankton"}, ", ")
.
Tout comme nous pouvons joindre des chaînes, nous pouvons également les séparer. Pour ce faire, nous pouvons utiliser la fonctionstrings.Split
et diviser sur les espaces:
balloon := "Sammy has a balloon."
s := strings.Split(balloon, " ")
fmt.Println(s)
Output[Sammy has a balloon]
La sortie est une tranche de chaînes. Puisquestrings.Println
a été utilisé, il est difficile de dire quelle est la sortie en la regardant. Pour voir qu'il s'agit bien d'une tranche de chaînes, utilisez la fonctionfmt.Printf
avec le verbe%q
pour citer les chaînes:
fmt.Printf("%q", s)
Output["Sammy" "has" "a" "balloon."]
Une autre fonction utile en plus destrings.Split
eststrings.Fields
. La différence est questrings.Fields
ignorera tous les espaces et ne divisera que lesfields
réels dans une chaîne:
data := " username password email date"
fields := strings.Fields(data)
fmt.Printf("%q", fields)
Output["username" "password" "email" "date"]
La fonctionstrings.ReplaceAll
peut prendre une chaîne d'origine et renvoyer une chaîne mise à jour avec un remplacement.
Disons que le ballon que Sammy a eu est perdu. Puisque Sammy n'a plus cette bulle, nous changerions la sous-chaîne"has"
de la chaîne d'origineballoon
en"had"
dans une nouvelle chaîne:
fmt.Println(strings.ReplaceAll(balloon, "has", "had"))
Entre parenthèses, se trouve d'abordballoon
la variable qui stocke la chaîne d'origine; la deuxième sous-chaîne"has"
est ce que nous voudrions remplacer, et la troisième sous-chaîne"had"
est ce par quoi nous remplacerions cette deuxième sous-chaîne. Notre sortie ressemblerait à ceci lorsque nous incorporons cela dans un programme:
OutputSammy had a balloon.
L'utilisation de la fonction de chaînestrings.Join
,strings.Split
etstrings.ReplaceAll
vous fournira un meilleur contrôle pour manipuler les chaînes dans Go.
Conclusion
Ce didacticiel présente certaines des fonctions de package de chaînes courantes pour le type de données chaîne que vous pouvez utiliser pour manipuler et manipuler des chaînes dans vos programmes Go.
Vous pouvez en savoir plus sur les autres types de données dansUnderstanding Data Types et en savoir plus sur les chaînes dansAn Introduction to Working with Strings.