Tracks
/
Crystal
Crystal
/
Ejercicios
/
Amor de secundaria
Amor de secundaria

Amor de secundaria

Ejercicio de aprendizaje

Introducción

String tiene varios métodos que puedes 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 tienes una lista de algunos de los métodos más comunes. Consulta la documentación de la API de String para ver la lista completa de métodos.

String#upcase & String#downcase

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

"hello".upcase
# => "HELLO"

El método downcase devuelve un string nuevo 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 va a reemplazar, y el segundo argumento es el reemplazo. Char y las regex se explican en conceptos posteriores.

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

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

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

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

String#chomp & String#strip

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

El método chomp elimina por defecto los últimos caracteres \r, \n o \r\n de un string. Si se llama al método con un argumento, eliminará el valor indicado del final del string, en caso de que exista allí.

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

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

Por defecto, 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, en caso de que exista allí.

" hello ".strip
# => "hello"

String#index

Puedes usar el método index 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 indicar el índice desde el cual 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

Puedes usar el método insert para insertar un string en un índice específico. El método insert recibe un índice como primer argumento y un string como segundo argumento. El método insert devuelve un string nuevo 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 unas parejas de secundaria a declarar su amor en las redes sociales generando un corazón en ASCII con su inicial:

❤ J.  +  M. ❤

1. Limpia el nombre

Implementa el método HighSchoolSweetheart.clean_up_name. Debe recibir un nombre, quitar todos los caracteres - y reemplazarlos por un espacio. También debe quitar 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. Da formato a la primera letra como 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 una pestaña nuevas
Crystal Exercism

¿Todo listo para empezar Amor de secundaria?

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