Les variables de text es poden concatenar fent servir el signe +. També es poden concatenar amb text escrit entre cometes.
... String nom = 'Joana'; String cognom = "Raspall"; String nomComplet = nom + ' ' + cognom; ...
Dart també permet combinar variables i text entre cometes d'una altra forma, que s'anomena interpolada. Per exemple:
... String nom = 'Joana'; String cognom = "Raspall"; String nomComplet = '$cognom, $nom'; // Equivalent a: cognom + ', ' + nom ...
ja que el signe $ dins d'un text entre cometes indica que darrere hi ha una variable i que cal posar-hi el seu valor.
No és necessari que les variables que hi ha dins de les cometes siguin de text:
... double costat = 23.2; String text = 'El costat del quadrat mesura $costat cm'; ...
També podem posar operacions i funcions dins de les cometes. Per fer-ho, cal posar l'operació dins unes claus i situar-li el signe $ al davant; per exemple:
...
double costat = 23.2;
String text = 'El perímetre del quadrat és ${4 * costat} cm';
...
En cas d'haver de posar caràcters especials en una cadena de caràcters, cal fer servir escapament.
A continuació hi ha un recull de les funcions d'ús més habitual sobre variables de text.
| Funció | Utilitat | Exemple |
| .isEmpty | Torna true si el text és buit | if(text.isEmpty){ |
| .isNotEmpty | Torna true si el text no és buit | if(text.isNotEmpty){ |
| .length | Nombre de caràcters (algun caràcter especial és comptat com a dos) | llargada = text.length; |
| .toString | Convertir variables numèriques a text | int valor = 63; String text = valor.toString(); |
| .toStringAsFixed | Convertir variables reals a text indicant el nombre de decimals desitjat | int a = 8; int b = 3; double m = a / b; print(m); print(m.toStringAsFixed(2)); |
| .toRadixString | Convertir variables numèriques a text però convertint el valor a una base qualsevol | print(8.toRadixString(2)); // 1000 → 8 en binari print(127.toRadixString(16)); // 7f → 127 en hexadecimal |
| .toLowerCase | Posa totes les lletres en minúscula | txt.toLowerCase() |
| .toUpperCase | Posa totes les lletres en majúscula | "text".toUpperCase() |
| .replaceAll | Substitueix el text passat com a primer paràmetre pel passat com a segon | valor.toString().replaceAll('.', ',') |
| .substring | Agafa un tros del text que comença a la posició del primer paràmetre (inclòs) Si hi ha un segon paràmetre, aquest indica quin és el primer caràcter que no s'agafa Els paràmetres han de ser enters |
const text = 'programa'; var resultat = text.substring(2); // ograma resultat = text.substring(1, 5); // rogr |
| .split | Retorna una llista creada a partir de tallar el text original pels caràcters passats com a paràmetre | text.split("\n") // Talla pels salts de línia |
| .contains | Mira si el text passat com a paràmetre està dins de la variable | String text = 'Text de prova';
bool conte = text.contains('p'); // true |
Quan rebem dades d'internet, és possible que els caràcters especials estiguin en el format com es codifiquen els caràcters
especials en HTML (per exemple, el codi À correspon a À. Hi ha una funció per descodificar-los.
Per fer-la servir, cal instal·lar la biblioteca html_unescape i importar-la. Per un costat, cal anar al fitxer
pubspec.yaml per dir-li que volem fer servir html_unescape. Cal posar-ho a dependencies, indicant quina és
la versió que volem. És recomanable indicar la darrera versió; atès que quan comencem a escriure
html_u ens ajuda a autocompletar, el normal és que ja ens doni la darrera versió. En el moment d'escriure això,
la darrera era la 2.0.0. Un cop afegit, cal picar al botó per baixar el paquet
(
). Per un altre costat, cal importar el paquet
html_unescape.dart; ja que no ho fa de manera automàtica.
dependencies:
flutter:
sdk: flutter
http: ^1.5.0
html_unescape: ^2.0.0
En el programa, crearem un objecte del tipus HtmlUnescape i ja podrem fer servir la funció de conversió.
... import 'package:html_unescape/html_unescape.dart'; // No ho posa automàticament
...
var unescape = HtmlUnescape();
return Text(unescape.convert(text));
...

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.