Tracks
/
Crystal
Crystal
/
Übungen
/
Highschool-Liebe
Highschool-Liebe

Highschool-Liebe

Lernübung

Einführung

String hat mehrere Methoden, mit denen du Strings bearbeiten kannst. Diese Methoden werden auf dem String selbst aufgerufen und oft miteinander verkettet, um mehrere Operationen an einem String durchzuführen.

Das Folgende ist eine Liste einiger der häufigsten Methoden. Eine vollständige Liste der Methoden findest du in der String-API-Dokumentation.

String#upcase & String#downcase

Die Methode upcase gibt einen neuen String zurück, bei dem alle Zeichen in Großbuchstaben umgewandelt werden.

"hello".upcase
# => "HELLO"

Die Methode downcase gibt einen neuen String zurück, bei dem alle Zeichen in Kleinbuchstaben umgewandelt werden.

"HELLO".downcase
# => "hello"

String#sub & String#gsub

Crystal hat Methoden, um Teile eines Strings zu ersetzen. Diese heißen sub (Substitution) und gsub (globale Substitution).

Diese Methoden nehmen als erstes Argument einen String, ein Char oder ein Regex und als zweites Argument einen String oder ein Char. Das erste Argument ist der Teil des Strings, der ersetzt wird, und das zweite Argument ist der Ersatz. Char und Regex werden in späteren Konzepten erklärt.

Die sub-Methode ersetzt das erste Vorkommen des ersten Arguments durch das zweite Argument.

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

Die gsub-Methode funktioniert genauso wie sub, ersetzt aber alle Vorkommen des ersten Arguments durch das zweite Argument.

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

String#chomp & String#strip

Mit Chomp und Strip kannst du unerwünschte Zeichen aus einem String entfernen.

Die Methode chomp entfernt standardmäßig die letzten Zeichen \r, \n oder \r\n aus einem String. Wird die Methode mit einem Argument aufgerufen, entfernt sie den angegebenen Wert am Ende des Strings, sofern er dort vorkommt.

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

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

Standardmäßig entfernt die Methode strip alle Leerzeichen am Anfang und Ende eines Strings. Wird die Methode mit einem Argument aufgerufen, entfernt sie dieses Argument am Anfang und Ende des Strings, sofern es dort vorkommt.

" hello ".strip
# => "hello"

String#index

Mit der Methode index kannst du den Index eines Zeichens in einem String finden. Die index-Methode nimmt einen String, ein Char oder ein Regex als Argument. Optional kann sie ein zweites Argument annehmen, das den Index angibt, ab dem gesucht wird. Die index-Methode gibt den Index des ersten Vorkommens des Arguments zurück.

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

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

String#delete_at

Mit der Methode delete_at kannst du ein Zeichen aus einem String entfernen. Die delete_at-Methode nimmt einen Index als Argument und entfernt das Zeichen an diesem Index.

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

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

String#insert

Mit der Methode insert kannst du einen String an einem bestimmten Index einfügen. Die insert-Methode nimmt als erstes Argument einen Index und als zweites Argument einen String. Die insert-Methode gibt einen neuen String zurück, bei dem das zweite Argument an dem Index eingefügt wurde.

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

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

Anleitung

In dieser Übung hilfst du Highschool-Liebespaaren, ihre Liebe in den sozialen Medien zu verkünden, indem du ein ASCII-Herz mit ihren Initialen erzeugst:

❤ J.  +  M. ❤

1. Den Namen bereinigen

Implementiere die Methode HighSchoolSweetheart.clean_up_name. Sie soll einen Namen entgegennehmen, alle --Zeichen daraus entfernen und sie durch ein Leerzeichen ersetzen. Außerdem soll sie alle Leerzeichen am Anfang und am Ende des Namens entfernen.

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

2. Den ersten Buchstaben des Namens ermitteln

Implementiere die Methode HighSchoolSweetheart.first_letter. Sie soll einen Namen entgegennehmen und seinen ersten Buchstaben zurückgeben. Achte darauf, HighSchoolSweetheart.clean_up_name wiederzuverwenden, die du im vorherigen Schritt definiert hast.

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

3. Den ersten Buchstaben als Initiale formatieren

Implementiere die Methode HighSchoolSweetheart.initial. Sie soll einen Namen entgegennehmen und seinen ersten Buchstaben in Großschreibung zurückgeben, gefolgt von einem Punkt. Achte darauf, HighSchoolSweetheart.first_letter wiederzuverwenden, die du im vorherigen Schritt definiert hast.

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

4. Die Initialen in das Herz setzen

Implementiere die Methode HighSchoolSweetheart.pair. Sie soll zwei Namen entgegennehmen und die Initialen mit Emoji-Herzen drumherum zurückgeben. Achte darauf, HighSchoolSweetheart.initial wiederzuverwenden, die du im vorherigen Schritt definiert hast.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B.  +  R. ❤"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Crystal Exercism

Bereit, mit Highschool-Liebe zu starten?

Melde dich bei Exercism an, um Crystal mit 26 Konzepte142 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.