DMarlon Studio

Lección 16 · 16 de 20

Métodos de las cadenas · Dart

Maneje texto en Dart con trim, toUpperCase, contains, indexOf, replaceAll, substring, split, join, padLeft y padRight.

Dart · Métodos de las cadenas en DMarlon Studio: el código del ejemplo y su salida en la terminal

`trim()` quita los espacios del principio y del final; los corchetes de '[$text]' dejan ver que ya no queda ninguno. `toUpperCase()` pasa el texto a mayúsculas y toLowerCase(), a minúsculas.

Para buscar, `contains()` dice si el texto aparece, `startsWith()` si la cadena empieza por él (y endsWith(), si acaba) e `indexOf()` da la posición de la primera aparición; `lastIndexOf()`, la de la última. Como en las listas, se cuenta desde 0.

`replaceAll('Dart', 'Flutter')` cambia todas las apariciones de un texto por otro. `substring(0, 4)` corta un trozo: desde la posición 0 hasta la 4, sin incluirla, que es la palabra Dart.

`split(' ')` parte la cadena por los espacios y da una lista de palabras; `join('_')` hace lo contrario y une una lista con el separador que se le dé. `padRight(12, '.')` rellena con puntos por la derecha hasta 12 caracteres y `padLeft(6)` con espacios por la izquierda: así los productos y los precios salen en columnas.

Las cadenas de Dart no cambian nunca: cada método devuelve una cadena nueva. Por eso raw sigue teniendo sus 34 caracteres con todos los espacios, aunque se haya hecho trim().

Código · main.dart

void main() {  String raw = '   Dart is fun and Dart is fast   ';  // trim removes the spaces at both ends.  String text = raw.trim();  print('[$text]');  // Changing case and looking for text.  print(text.toUpperCase());  print('Has "fast"? ${text.contains('fast')}');  print('Starts with "Dart"? ${text.startsWith('Dart')}');  print('"is" first at ${text.indexOf('is')}, last at ${text.lastIndexOf('is')}');  // replaceAll swaps text; substring(start, end) cuts a piece.  print(text.replaceAll('Dart', 'Flutter'));  print('Characters 0 to 4: ${text.substring(0, 4)}');  // split cuts the text into a list; join glues it back.  var words = text.split(' ');  print('${words.length} words: $words');  print(words.join('_'));  // padRight and padLeft fill with characters to line up columns.  var items = ['tea', 'croissant', 'juice'];  var prices = ['1.30', '2.25', '12.50'];  for (int i = 0; i < items.length; i++) {    print('${items[i].padRight(12, '.')}${prices[i].padLeft(6)}');  }  // Strings never change: each method returns a new one.  print('raw still has ${raw.length} characters');}

Salida · dart run main.dart

[Dart is fun and Dart is fast]
DART IS FUN AND DART IS FAST
Has "fast"? true
Starts with "Dart"? true
"is" first at 5, last at 21
Flutter is fun and Flutter is fast
Characters 0 to 4: Dart
7 words: [Dart, is, fun, and, Dart, is, fast]
Dart_is_fun_and_Dart_is_fast
tea.........  1.30
croissant...  2.25
juice....... 12.50
raw still has 34 characters

Para recordar

  • trim() quita los espacios de los extremos.
  • contains, startsWith e indexOf buscan texto.
  • substring(inicio, fin) no incluye el fin.
  • split da una lista; join la vuelve a unir.
  • Los métodos devuelven una cadena nueva; la original no cambia.

Ejercicio

Parta de ' ana GARCIA, madrid ', quite los espacios, sepárela por la coma y escriba Name: Ana Garcia y City: MADRID, con cada palabra del nombre empezando en mayúscula.