Aplicacions amb Flutter, Dart i Flame

Tutorial Flutter Flame Projectes   Recursos CITCEA
Exemples Dart Dades pràctiques     Inici

Operacions amb les variables de text

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.

Funcions per a les variables de text

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

Descodificació de caracters especials HTML

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 (baixar). 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));
...

 

 

 

 

 

 

 

 

 

 

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