Introducción a las variables en Flutter: Las Strings


Avatar de Pedro Cortez

¿La clase de Flutter más fácil de usar cuando estás empezando es probablemente la de tipo String? ¿Cómo crear variables de tipo String y manipularlas en tu aplicación? Intento responder a esto con ejemplos sencillos en este artículo.


clase string flutter

¿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

Asegúrate de agregar los espacios entre tus variables cuando concatenes varios Strings.

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
Lamentablemente, no existe una función que permita poner solo la primera letra en mayúscula. Para hacerlo, necesitas aislar la primera letra, usar toUpperCase(), y luego realizar una concatenación.

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.

Estos métodos también son sensibles a mayúsculas y minúsculas. Una letra en mayúscula no es igual a la misma letra en minúscula.

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:

Avatar de Pedro Cortez