Rutas
/
Crystal
Crystal
/
Ejercicios
/
Amor de instituto
Amor de instituto

Amor de instituto

Ejercicio de aprendizaje

Introducción

String tiene varios métodos que se pueden usar para manipular strings.
Estos métodos se llaman sobre el propio string y a menudo se encadenan para realizar varias operaciones sobre un string.

A continuación se muestra una lista de algunos de los métodos más comunes. Consulta la documentación de la API de String para ver una lista completa de métodos.

String#upcase & String#downcase

El método upcase devuelve un nuevo string con todos los caracteres convertidos a mayúsculas.

"hello".upcase
# => "HELLO"

El método downcase devuelve un nuevo string con todos los caracteres convertidos a minúsculas.

"HELLO".downcase
# => "hello"

String#sub & String#gsub

Crystal tiene métodos para reemplazar partes de un string. Se conocen como sub (sustitución) y gsub (sustitución global).

Estos métodos pueden recibir un string, un char o una regex como primer argumento, y un string o un char como segundo argumento. El primer argumento es la parte del string que se reemplazará, y el segundo argumento es el reemplazo. Char y las regex se explicarán en conceptos posteriores.

El método sub reemplaza la primera aparición del primer argumento por el segundo argumento.

"hello".sub("l", "r")
# => "herlo"

El método gsub funciona igual que sub, pero reemplaza todas las apariciones del primer argumento por el segundo argumento.

"hello".gsub("l", "r")
# => "herro"

String#chomp & String#strip

Chomp y strip se pueden usar para eliminar caracteres no deseados de un string.

El método chomp elimina, de forma predeterminada, los últimos caracteres \r, \n o \r\n de un string. Si se llama al método con un argumento, eliminará el valor dado del final del string, si es que existe al final del string.

"hello\n".chomp
# => "hello"

"hello".chomp("llo")
# => "he"

De forma predeterminada, el método strip elimina todos los espacios en blanco del principio y el final de un string. Si se llama al método con un argumento, eliminará ese argumento del principio y el final del string, si es que existe al principio o al final del string.

" hello ".strip
# => "hello"

String#index

El método index se puede usar para encontrar el índice de un carácter en un string. El método index recibe un String, un Char o una regex como argumento. Puede recibir un segundo argumento opcional para especificar el índice desde el que buscar. El método index devuelve el índice de la primera aparición del argumento.

"hello".index("l")
# => 2

"hello".index("l", 3)
# => 3

String#delete_at

Puedes usar el método delete_at para eliminar un carácter de un string. El método delete_at recibe un índice como argumento y elimina el carácter que está en ese índice.

"hello".delete_at(0)
# => "ello"

"hello".delete_at(3)
# => "helo"

String#insert

El método insert se puede usar para insertar un string en un índice concreto. El método insert recibe un índice como primer argumento y un string como segundo argumento. El método insert devuelve un nuevo string con el segundo argumento insertado en el índice.

"hello".insert(0, "h")
# => "hhello"

"hello".insert(3, "l")
# => "helllo"

Instrucciones

En este ejercicio, vas a ayudar a unos novios de instituto a declarar su amor en las redes sociales generando un corazón ASCII con sus iniciales:

❤ J.  +  M. ❤

1. Limpia el nombre

Implementa el método HighSchoolSweetheart.clean_up_name. Debe recibir un nombre, eliminar todos los caracteres - y reemplazarlos por un espacio. También debe eliminar los espacios en blanco del principio y del final del nombre.

HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"

2. Obtén la primera letra del nombre

Implementa el método HighSchoolSweetheart.first_letter. Debe recibir un nombre y devolver su primera letra. Asegúrate de reutilizar HighSchoolSweetheart.clean_up_name, que definiste en el paso anterior.

HighSchoolSweetheart.first_letter("Jane")
# => "J"

3. Formatea la primera letra como una inicial

Implementa el método HighSchoolSweetheart.initial. Debe recibir un nombre y devolver su primera letra en mayúscula, seguida de un punto. Asegúrate de reutilizar HighSchoolSweetheart.first_letter, que definiste en el paso anterior.

HighSchoolSweetheart.initial("Robert")
# => "R."

4. Coloca las iniciales dentro del corazón

Implementa el método HighSchoolSweetheart.pair. Debe recibir dos nombres y devolver las iniciales rodeadas de corazones emoji. Asegúrate de reutilizar HighSchoolSweetheart.initial, que definiste en el paso anterior.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B.  +  R. ❤"
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Crystal Exercism

¿Listo para empezar Amor de instituto?

Regístrate en Exercism para aprender y dominar Crystal con 26 conceptos142 ejercicios y mentoría humana real, todo gratis.