Les Strings : Introduction aux variables dans Flutter


Avatar de Pierre Courtois

La classe de Flutter la plus simple à utiliser quand on débute est probablement celle de type String ? Comment créer des variables de type String et les manipuler dans votre application ? J’essaye d’y répondre avec des exemples simples dans cet article.


texte écrit sur un ordinateur

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

Pensez bien à ajouter les espaces entre vos variables lorsque vous concaténez plusieurs Strings.

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

Votre méthode doit être mise entre deux accolades { }, précédées du symbole $. 

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 : 

  1. .trimLeft()
  2. .trimRigth()
  3. .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

Il n’existe malheureusement pas de fonction pour n’avoir que la première lettre de votre mot en majuscule. Vous devez l’isoler, utiliser la fonction toUpperCase(), puis opérer une concaténation. 

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

Ces méthodes sont case sensitives. Une lettre en majuscule n’est donc pas égale à la même lettre en minuscule. 

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.

Ces méthodes sont case sensitives. Une lettre en majuscule n’est donc pas égale à la même lettre en minuscule. 

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 :

Avatar de Pierre Courtois