¿Qué es la clase String?
La clase String permite definir el comportamiento de tus variables de tipo String. Estas contienen cadenas de caracteres y están representadas por comillas simples o dobles. Por ejemplo, Flutter reconoce indistintamente estas dos variables como Strings:
String mensaje = "Hello World";
String mensaje2 = 'Hello World';
La clase String acepta todo tipo de caracteres: letras, números o caracteres especiales, siempre y cuando estén colocados entre comillas.
Para palabras con apóstrofes
Es preferible usar comillas dobles para definir tus variables de tipo String en Flutter. Esto evitará errores si escribes una palabra que contenga un apóstrofe. Sin embargo, si utilizas comillas simples, simplemente añade un ** antes del apóstrofe para corregir el error.
Crear una variable de tipo String
Las variables de tipo String se pueden definir muy fácilmente, ingresando una cadena de caracteres entre comillas:
String mensaje = "Mi variable de tipo String";
print(mensaje);
↪ Mi variable de tipo String
Mostrar mi texto en varias líneas
En el ejemplo anterior, el texto contenido en la variable mensaje
se mostrará en una sola línea si lo insertas en un comando print()
. Pero, ¿qué hacer si deseas mostrar un texto en varias líneas sin tener que crear múltiples variables que apilarás una sobre otra? Simplemente inserta tu texto entre tres comillas de esta manera:
String mensajeEnTresLineas = """Mi mensaje
en tres
líneas""";
print(mensajeEnTresLineas);
↪ Mi mensaje
↪ en tres
↪ líneas
En este ejemplo, el texto se mostrará en tres líneas distintas, tal como fue declarado en la variable.
Transformar variables de otro tipo en String
Solo las variables de tipo String pueden ser utilizadas en widgets que muestran texto. Por lo tanto, a veces necesitarás convertir tus variables de tipo int
o double
, listas, mapas, etc., en String
utilizando el método .toString()
. Este método es muy fácil de usar:
int edad = 25;
print("Tengo ${edad.toString()} años");
↪ Tengo 25 años
Manipular una variable de tipo String
No existe un método para modificar directamente una variable de tipo String
, como puede ser el caso para las clases Int
, List
y Map
. Sin embargo, hay varios métodos que te permiten manipular uno o más Strings para obtener una nueva variable.
Obtener una subparte de un String
Es posible obtener una parte de un String
utilizando el método .substring()
:
String miTexto = "Programo con Flutter.";
String miNuevoTexto = miTexto.substring(0, 6);
print(miNuevoTexto);
↪ Progra
Si solo deseas obtener una letra en particular, también puedes recuperarla usando un índice. Por ejemplo:
String miTexto = "Programo con Flutter.";
print(miTexto[0]);
↪ P
Unir varias variables de tipo String entre sí
Es posible sumar varios Strings entre ellos para obtener un nuevo texto. Este proceso se llama concatenación:
String miTexto = "Yo " + "programo " + "con " + "Flutter.";
print(miTexto);
↪ Yo programo con Flutter
La concatenación también se puede hacer con texto y otra variable de tipo texto, colocando un símbolo $
antes de la variable:
String texto = "Me llamo ";
String textoCompleto = texto + "Pedro";
print(textoCompleto);
↪ Me llamo Pedro
Obtener la longitud de mi variable String
La longitud de una variable de tipo String, incluidos los espacios, se puede obtener fácilmente utilizando el método .length()
:
String texto = "Mi texto a contar";
print("${texto.length}");
↪ 19
Tu método debe colocarse entre llaves {}
, precedido del símbolo $
.
replaceRange()
El método replaceRange()
te permite, como su nombre lo indica, modificar una parte de tu variable String. Por ejemplo, aquí tienes cómo usarlo para agregar una palabra al final de tu texto:
String texto = "Me gusta programar con Java";
String nuevoTexto = texto.replaceRange(24, null, "Flutter");
print(nuevoTexto);
↪ Me gusta programar con Flutter
Mostrar texto en Flutter
Una vez que hayas creado tus variables de tipo String, puedes mostrarlas en la pantalla utilizando widgets diseñados para ello. Existen varios, como el widget Text, pero también ListViews o TextButtons. Otros widgets o comandos también aceptan variables de tipo String como argumento. Es el caso de:
print
;- Imágenes,
.network
y.asset
; - Algunos paquetes, como Fluttertoast;
- hintTexts, etc.
Otras funciones útiles con la clase String
Aquí tienes una lista no exhaustiva de otras funciones que puedes usar con la clase String en Flutter.
Eliminar espacios con trim()
Existen tres métodos para eliminar los espacios en tu cadena de texto:
.trimLeft()
.trimRight()
.trim()
El primero elimina todos los espacios al principio del texto, el segundo al final, y el último elimina ambos. Puede ser útil para los campos donde el usuario ingresa datos personales, evitando así errores.
Poner en minúsculas con toLowerCase()
Como su nombre lo indica, la función .toLowerCase()
permite convertir el texto a minúsculas:
String texto = "FLUTTER";
print(texto.toLowerCase());
↪ flutter
Poner en mayúsculas con toUpperCase()
Por el contrario, la función .toUpperCase()
convierte tu texto en mayúsculas:
String texto = "flutter";
print(texto.toUpperCase());
↪ FLUTTER
Encontrar si un elemento está presente con contains()
El método .contains()
te permite identificar fácilmente si tu variable de tipo String contiene uno o varios caracteres. También puedes elegir a partir de qué carácter aplicar el método. Por ejemplo:
String texto = "Yo programo en Dart";
print(texto.contains("Dart", 3));
↪ true
Estos métodos son sensibles a mayúsculas y minúsculas. Es decir, una letra en mayúscula no es igual a la misma letra en minúscula.
startsWith()
y endsWith()
Los métodos startsWith()
y endsWith()
funcionan de manera similar a contains()
, pero permiten saber si una variable de tipo String comienza o termina con un carácter.
Encontrar el índice de un carácter
Puedes encontrar el índice de un carácter o una cadena usando el método indexOf()
. Si el carácter no se encuentra, el resultado devuelto será -1. Por ejemplo:
String texto = "Yo programo en Dart";
print(texto.indexOf("programo"));
↪ 3
De manera similar, existe el método lastIndexOf()
, que funciona igual pero devuelve el índice de la última aparición de la cadena que estás buscando. Por ejemplo:
String texto = "Yo programo en Dart";
print(texto.lastIndexOf("o"));
↪ 11
Reemplazar todos los caracteres que coincidan con replaceAll()
Por último, el método replaceAll()
te permite reemplazar, por un nuevo valor, todos los caracteres o cadenas que coincidan con lo que estás buscando. Por ejemplo, aquí tienes un ejemplo proporcionado en la documentación de Flutter:
String texto = "espanol";
print(texto.replaceAll("n", 'ñ'));
↪ español
Conclusión
Ahora ya sabes todo lo que necesitas sobre las variables de tipo String en Flutter. El siguiente paso tratará sobre las variables de tipo Int y Double: