String dispose de plusieurs méthodes qui permettent de manipuler des strings.
Ces méthodes s'appellent sur la string elle-même et sont souvent enchaînées pour effectuer plusieurs opérations sur une string.
Voici une liste de quelques-unes des méthodes les plus courantes.
Consulte la documentation de l'API de String pour une liste complète des méthodes.
La méthode upcase renvoie une nouvelle string dont tous les caractères sont convertis en majuscules.
"hello".upcase
# => "HELLO"
La méthode downcase renvoie une nouvelle string dont tous les caractères sont convertis en minuscules.
"HELLO".downcase
# => "hello"
Crystal propose des méthodes pour remplacer des parties d'une string.
Elles s'appellent sub (substitution) et gsub (substitution globale).
Ces méthodes prennent en premier argument une string, un Char ou une regex, et en second argument une string ou un Char.
Le premier argument est la partie de la string qui sera remplacée, et le second argument est le remplacement.
Les Char et les regex seront expliqués dans des concepts ultérieurs.
La méthode sub remplace la première occurrence du premier argument par le second argument.
"hello".sub("l", "r")
# => "herlo"
La méthode gsub fonctionne comme sub, mais remplace toutes les occurrences du premier argument par le second argument.
"hello".gsub("l", "r")
# => "herro"
chomp et strip permettent de supprimer des caractères indésirables d'une string.
Par défaut, la méthode chomp supprime les derniers caractères \r, \n ou \r\n d'une string.
Si la méthode est appelée avec un argument, elle supprime la valeur donnée à la fin de la string, à condition qu'elle s'y trouve.
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
Par défaut, la méthode strip supprime tous les espaces au début et à la fin d'une string.
Si la méthode est appelée avec un argument, elle supprime cet argument au début et à la fin de la string, s'il s'y trouve.
" hello ".strip
# => "hello"
La méthode index permet de trouver l'indice d'un caractère dans une string.
La méthode index prend en argument une String, un Char ou une regex.
Elle peut prendre un second argument facultatif pour préciser l'indice à partir duquel effectuer la recherche.
La méthode index renvoie l'indice de la première occurrence de l'argument.
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
Tu peux utiliser la méthode delete_at pour supprimer un caractère d'une string.
La méthode delete_at prend un indice en argument et supprime le caractère situé à cet indice.
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
La méthode insert permet d'insérer une string à un indice précis.
La méthode insert prend un indice en premier argument et une string en second argument.
La méthode insert renvoie une nouvelle string dans laquelle le second argument est inséré à l'indice donné.
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
Dans cet exercice, tu vas aider des amoureux de lycée à déclarer leur amour sur les réseaux sociaux en générant un cœur en ASCII avec leur initiale :
❤ J. + M. ❤
Implémente la méthode HighSchoolSweetheart.clean_up_name.
Elle prend un nom, en retire tous les caractères - et les remplace par un espace.
Elle retire aussi les espaces au début et à la fin du nom.
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
Implémente la méthode HighSchoolSweetheart.first_letter.
Elle prend un nom et renvoie sa première lettre.
Pense à réutiliser HighSchoolSweetheart.clean_up_name, que tu as définie à l'étape précédente.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implémente la méthode HighSchoolSweetheart.initial.
Elle prend un nom et renvoie sa première lettre, en majuscule, suivie d'un point.
Pense à réutiliser HighSchoolSweetheart.first_letter, que tu as définie à l'étape précédente.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implémente la méthode HighSchoolSweetheart.pair.
Elle prend deux noms et renvoie les initiales entourées de cœurs emoji.
Pense à réutiliser HighSchoolSweetheart.initial, que tu as définie à l'étape précédente.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Inscris-toi sur Exercism pour apprendre et maîtriser Crystal avec 26 concepts142 exercices, et un vrai mentorat humain, le tout gratuitement.