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.
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"
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"
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"
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
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"
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"
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. ❤
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"
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"
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."
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. ❤"
Regístrate en Exercism para aprender y dominar Crystal con 26 conceptos142 ejercicios y mentoría humana real, todo gratis.