Ein String (Zeichenkette) ist der JavaScript-Datentyp zum Speichern von Textdaten.
Du erstellst eine Zeichenkette, indem du den Text in einfache oder doppelte Anführungszeichen setzt. Bei Exercism verwendest du einfache Anführungszeichen.
'Hello, World!'
"Hello, World!"
Eine Zeichenkette kann als Liste von Zeichen behandelt werden, wobei das erste Zeichen den Index 0 hat.
Du kannst auf ein einzelnes Zeichen der Zeichenkette zugreifen, indem du eckige Klammern und den Index des Zeichens verwendest, das du abrufen möchtest.
'cat'[1];
// => 'a'
Du kannst die Anzahl der Zeichen in einer Zeichenkette ermitteln, indem du auf die Eigenschaft length zugreifst.
'cat'.length;
// => 3
Die einfachste Möglichkeit, Zeichenketten zu verketten, ist der Additionsoperator +.
'I like' + ' ' + 'cats.';
// => "I like cats."
Zeichenketten bieten viele Hilfsmethoden. Eine vollständige Liste findest du in den MDN-Dokumenten zu String-Methoden. Die folgende Liste zeigt einige häufig verwendete Hilfsmethoden.
toUpperCase und toLowerCase – ändern die Groß- und Kleinschreibung aller Zeichentrim – entfernt Leerzeichen am Anfang und Endeincludes, startsWith und endsWith – stellen fest, ob eine andere Zeichenkette Teil der gegebenen Zeichenkette istslice – extrahiert einen Abschnitt der ZeichenketteZeichenketten sind in JavaScript unveränderlich. Eine „Änderung“, zum Beispiel durch eine der oben genannten Methoden, erzeugt also immer eine neue Zeichenkette.
In der Stadt hat ein neuer Poesieclub eröffnet, und du spielst mit dem Gedanken, beizutreten. Weil es in der Vergangenheit Zwischenfälle gegeben hat, hat der Club eine ganz besondere Türpolitik, die du beherrschen musst, bevor du Einlass bekommst.
Es gibt zwei Türen im Poesieclub, eine vordere und eine hintere, und beide werden bewacht. Um Einlass zu bekommen, musst du das Passwort des Tages herausfinden.
Das Passwort basiert immer auf einem Gedicht und lässt sich in zwei Schritten ableiten.
Die Einzelheiten des Ablaufs hängen davon ab, durch welche Tür du hineinwillst.
Um die Buchstaben für das Passwort der vorderen Tür zu bestimmen, musst du mit dem ersten Buchstaben der Gedichtzeile antworten, die der Wächter dir vorträgt.
Damit am Ende ein schönes Passwort herauskommt, verwenden die Mitglieder des Poesieclubs gern akrostische Gedichte. Das bedeutet, dass der erste Buchstabe jedes Satzes ein Wort ergibt. Hier ist ein Beispiel von einem ihrer Lieblingsautoren, Michael Lockwood.
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Wenn der Wächter also Stands so high vorträgt, antwortest du S, und wenn er Huge hooves too vorträgt, antwortest du H.
Implementiere die Funktion frontDoorResponse, die eine Zeile des Gedichts als Argument entgegennimmt und den ersten Buchstaben dieser Zeile zurückgibt.
frontDoorResponse('Stands so high');
// => "S"
Jetzt, wo du alle richtigen Buchstaben hast, musst du nur noch das Wort richtig großschreiben, um das Passwort für die vordere Tür zu bekommen.
Implementiere die Funktion frontDoorPassword, die einen String (die kombinierten Buchstaben aus Aufgabe 1) entgegennimmt und ihn korrekt großgeschrieben zurückgibt.
frontDoorPassword('SHIRE');
// => "Shire"
frontDoorPassword('shire');
// => "Shire"
Um die Buchstaben für das Passwort der hinteren Tür zu bestimmen, musst du mit dem letzten Buchstaben der Gedichtzeile antworten, die der Wächter dir vorträgt.
Die Mitglieder des Poesieclubs sind wirklich clever. Das zuvor erwähnte Gedicht ist außerdem telestichisch, was bedeutet, dass auch der letzte Buchstabe jedes Satzes ein Wort bildet:
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Wenn der Wächter Stands so high vorträgt, antwortest du h, und wenn er Huge hooves too vorträgt, antwortest du o.
Beachte, dass der Wächter manchmal stilistische Pausen macht (in Form von Leerzeichen) am Anfang oder am Ende einer Zeile. Diese Pausen musst du ignorieren, um den richtigen Buchstaben zu ermitteln.
Implementiere die Funktion backDoorResponse, die eine Zeile des Gedichts als Argument entgegennimmt und den letzten Buchstaben dieser Zeile zurückgibt, der kein Leerzeichen ist.
backDoorResponse('Stands so high');
// => "h"
backDoorResponse('Stands so high ');
// => "h"
Um über die hintere Tür in den Poesieclub zu kommen, musst du besonders höflich sein.
Um das Passwort abzuleiten, musst du diesmal das Wort richtig großschreiben und ', please' am Ende anhängen.
Implementiere die Funktion backDoorPassword, die einen String (die kombinierten Buchstaben aus Aufgabe 3) entgegennimmt und die höfliche Version des großgeschriebenen Passworts zurückgibt.
backDoorPassword('horse');
// => "Horse, please"
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.