Dart, manipulation et interpolation des string

in Code fr

Comme dans tout langage de programmation, les chaînes de caractères (string) ont une importance centrale. Voici quelques éléments de manipulation des strings dans Dart.

String est un type, on peut donc initialiser une variable comme suit :

String monString = "Hello world!";
print(monString); /*affiche : Hello world!*/

Il est possible de convertir n’importe quel objet en string. Ce n’est pas souvent intéressant en production, mais pour débugger, c’est très pratique :

var monObjet = new Object();
print(monObjet.toString(); /*affiche : Instance of 'Object'*/

Des strings adjacents sont concaténés sans avoir besoin d’opérateur :

String monString = "Hello" "world";
print(monString); /*affiche : Helloworld*/

L’opérateur $ permet d’interpoler des strings et d’y injecter des variables

print( "la réponse est $( 5 + 10 )" ); /*affiche : la réponse est 15*/

Le triple quote permet de créer un string multi-ligne

string multi = """
    <div>\t foo</div>
"""

L’opérateur r (raw) renvoie le raw string, en annulant toute interpolation :

print( r"la réponse est $( 5 + 10 )" ) =>; la réponse est $( 5 + 10 )"

Les séquences échappées pour les caractères spéciaux utiles sont les suivants :

\n =>; saut de ligne
\r =>; retour chariot
\t =>; tabulation

On notera les fonctions suivantes :

String maChaine = "Hello world!";
print ( chaine.toUpperCase() ); /*HELLO WORLD!*/
print ( chaine.toLowerCase() ); /*hello world!*/
print ( chaine.charCodes() ); /* [72, 101, 108, 108, 111, 119, 32, 119, 111, 114, 108, 100, 33] =>; un tableau avec le code de chacun des caractères du string*/
print ( chaine.charCodeAt(0) ); /*72 =>; le char code à l'index 0*/
print ( chaine. substring(3, 8) ); /*lo wo =>; renvoie les caractère de 3 à 8 de la chaîne*/
print ( chaine. startsWith('H') ); /*true =>; un booléen qui dit si oui ou non, la chaîne commence par le caractère indiqué */
print ( chaine. endsWith('H') ); /*false =>; un booléen qui dit si oui ou non, la chaîne termine par le caractère indiqué */
print ( chaine.length) ); /*12 =>; longueur de la chaîne */
print ( chaine. hashCode() ); /* 599436190 =>; un hash du string (utilisable pour les mots de passe) */

Il existe également des fonctions de remplacement et de recherche puissantes ; mais les détailler serait un peu long pour un simple billet !
Voilà donc pour les opérations courantes sur les Strings dans Dart.