Qu’est-ce que la Class String ?
La classe String permet de définir le comportement de vos variables de type String. Celles-ci contiennent des chaînes de caractères et sont symbolisées par des guillemets simples ou doubles. Par exemple, Flutter reconnait indifféremment ces deux variables comme des Strings :
String message = "Hello World";
String message2 = "Hello World";
La class String accepte tout type de caractères, lettres, chiffres ou caractères spéciaux, dès lors que ceux-ci sont placés entre parenthèses.
Pour les mots avec une apostrophe
Idéalement, utilisez les doubles guillemets pour définir vos variables de type String dans Flutter. Cela vous évitera d’avoir une erreur si jamais vous tapez un mot qui contient une apostrophe. Toutefois, si vous utilisez les guillemets simples, ajoutez simplement un \ devant l’apostrophe pour résoudre l’erreur.
Créer une variable de type String
Les variables de type String peuvent être définies très simplement, en entrant une chaîne de caractères entre guillemets :
String message = "Ma variable de type String" ;
print(message);
↪ Ma variable de type String
Afficher mon texte sur plusieurs lignes
Dans l’exemple que j’ai fourni précédemment, le texte contenu dans la variable message va s’afficher sur une seule ligne si je l’insère dans une commande print(). Mais comment faire si je souhaite afficher un texte sur plusieurs lignes sans avoir à créer plusieurs variables que je vais empiler les unes sur les autres ? Tout simplement en insérant mon texte entre trois guillemets comme cela :
String messageSurTroisLignes = """Mon message
sur trois
lignes""";
print(messageSurTroisLignes);
↪ Mon Message
↪ sur trois
↪ lignes
Dans cet exemple, le texte va s’afficher sur 3 lignes distinctes, comme dans la déclaration de ma variable.
Transformer des variables d’un autre type, en String
Seules les variables de type String peuvent être utilisées dans des widgets affichant du texte. Vous aurez donc parfois besoin de convertir vos variables int ou double, listes, maps, etc, en String, grâce à la méthode .toString(). Celle-ci est très simple à utiliser :
Int age = 25;
print("J’ai ${age.toString()} ans")
↪ J’ai 25 ans
Manipuler ma variable de type String
Il n’existe pas de méthode pour modifier une variable de type String, comme ça peut être le cas pour les class Int, List et Map. Toutefois, plusieurs méthodes vous permettent de manipuler un ou plusieurs Strings pour obtenir une nouvelle variable.
Obtenir une sous partie d’un String
Il est possible de garder une partie d’un String, grâce à la méthode .subString() :
String monTexte = "Je code avec Flutter.";
String monNouveauTexte = monTexte.substring(0, 6);
print(monNouveauTexte);
↪ Je code
Si vous ne souhaitez retrouver qu’une seule lettre en particulier, vous pouvez également la récupérer en utilisant un index. Par exemple :
String monTexte = "Je code avec Flutter.";
print(monTexte[0]);
↪ J
Lier plusieurs variables Strings entre elles
Il est possible d’additionner plusieurs Strings entre eux, pour obtenir un nouveau texte. On appelle cette méthode la concaténation :
String monTexte = "Je " + "code " + "avec " + "Flutter."
print(monTexte);
↪ Je code avec Flutter
La concaténation peut aussi se faire avec du texte et une autre variable de type texte devant laquelle on ajoute un symbole $ :
String texte = "Je m’appelle ";
String fullTexte = texte + "Pierre";
print(fullTexte);
↪ Je m’appelle Pierre
Obtenir la longueur de ma variable String
La longueur d’une variable de type String, espaces compris, s’obtient facilement en utilisant la méthode .length() :
String texte = "Mon texte à compter";
print(${texte.length()});
↪ 19
replaceRange()
La méthode replaceRange(), vous permet, comme son nom l’indique, de modifier une partie de votre variable String. Par exemple, voici comme l’utiliser pour ajouter un mot à la fin de votre texte :
String texte = "J’aime coder avec Java";
String newTexte = texte.replaceRange(18, null, "Flutter")
print(newTexte)
↪ J’aime coder avec Flutter
Afficher du texte dans Flutter
Une fois vos variables de type String créées, il vous est possible de les afficher à l’écran grâce à des widgets prévus pour cela. On en trouve plusieurs, notamment le widget Text, mais aussi les ListViews ou les TextButtons. D’autres widgets ou commandes prennent aussi des variables de type String comme argument. C’est le cas :
- De print;
- Des images, .network et .asset ;
- De certains packages, comme Fluttertoast ;
- Des hintTexts, etc ;
D’autres méthodes utiles avec la class String
Voici une liste non exhaustive, d’autres méthodes que vous pouvez utiliser avec la class String dans Flutter.
Supprimer les espaces avec trim()
Trois méthodes sont prévues pour supprimer les espaces dans votre chaîne de caractère :
- .trimLeft()
- .trimRigth()
- .trim()
La première, retire tout espace au début du texte, la seconde, à la fin et la dernière supprime les deux. Elle peut être pertinente à utiliser pour les champs où l’utilisateur va entrer ses données personnelles et ainsi éviter des erreurs.
Mettre en minuscule avec toLowerCase()
Comme son nom l’indique, la fonction .toLowerCase() vous permet de supprimer les majuscules dans un texte :
String texte = "FLUTTER";
print(texte.toLowerCase());
↪ flutter
Mettre en majuscule avec toUpperCase()
À l’inverse, la fonction .toUpperCase() vous permet mettre votre texte en majuscule :
String texte = "flutter";
print(texte.toUpperCase());
↪ FLUTTER
Trouver si un élément est présent, avec Contains()
La méthode .contains() vous permet d’identifier facilement si votre variable String contient ou nous un ou plusieurs caractères. Vous pouvez également choisir à partir de quel caractère appliquer la méthode. Par exemple :
String texte = "Je code en Dart";
print(string.contains(“Dart”, 3));
↪ true
startsWith() & endsWith()
Les méthodes startsWith() et endsWith(), fonctionnent comme la méthode Contains(), mais permet de savoir si un variable String commence ou finie par un caractère.
Trouver l’index d’un caractère
Vous pouvez trouver l’index d’un caractère ou d’une chaîne, grâce à la méthode indexOf(). Si ce caractère n’est pas trouvé, le résultat renvoyé sera alors de -1. Par exemple :
String texte = "Je code en Dart";
print(texte.indexOf(“code”));
↪ 4
Du même type, on va trouver la méthode lastIndexOf(), qui fonctionne de la même manière, mais qui donne l’index de la dernière occurrence de la chaîne que vous cherchez. Par exemple :
String texte = "Je code en Dart";
print(texte.lastIndexOf(“e”));
↪ 9
Remplacer tous les caractères qui correspondent, avec replaceAll()
Enfin, la méthode replaceAll() vous permet de remplacer par une nouvelle valeur, tous les caractères ou chaînes de caractères qui correspondent à ce que vous cherchez. Par exemple, voici un exemple fourni dans la documentation Flutter :
String texte = "resume";
print(texte.replaceAll("e", 'é'));
↪ résumé
Conclusion
Vous savez désormais tout ce qu’il y a à savoir sur les variables de type String dans Flutter. La prochaine étape concernera les variables de type Int et Double :