Lección 19 / 20

Trabajar con texto (String)

En esta lección transformarás una cadena de texto y medirás su tamaño.

String::from() crea un texto del que eres dueño. to_uppercase() devuelve una copia en mayúsculas —no modifica el original— y len() devuelve su longitud en bytes.

El código de ejemplo muestra el mismo texto en mayúsculas y su tamaño.

Ese len() es la trampa clásica, y en español se nota mucho más que en inglés: el texto del ejemplo empieza por ¡, que ocupa 2 bytes en UTF-8, así que el número que sale es mayor que la cantidad de letras. Rust es deliberadamente explícito aquí: len() son bytes, chars().count() son caracteres, y ninguno de los dos es «la longitud» sin más.

Por el mismo motivo, en Rust no puedes indexar un texto con message[0]. El compilador lo prohíbe porque el byte cero podría ser medio carácter. Molesta al venir de Python, pero es la razón por la que un programa en Rust no se rompe la primera vez que un usuario escribe un acento o un emoji.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Rust directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)