Tracks
/
Go
Go
/
Übungen
/
Willkommen im Tech Palace!
Willkommen im Tech Palace!

Willkommen im Tech Palace!

Lernübung

Einführung

Ein string in Go ist eine unveränderliche Folge von Bytes, die nicht unbedingt Zeichen darstellen müssen.

Ein Zeichenkettenliteral wird zwischen doppelten Anführungszeichen definiert:

const name = "Jane"

Zeichenketten lassen sich mit dem +-Operator verketten:

"Jane" + " " + "Austen"
// => "Jane Austen"

Einige Sonderzeichen müssen mit einem vorangestellten Backslash maskiert werden, zum Beispiel \t für einen Tabulator und \n für einen Zeilenumbruch in Zeichenketten.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

Das Paket strings enthält viele nützliche Funktionen, mit denen du Zeichenketten bearbeiten kannst. Weitere Informationen zu Zeichenkettenfunktionen findest du in der strings-Paketdokumentation. Hier sind einige Beispiele:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

Anleitung

In der Nähe gibt es ein Elektrogeschäft namens „Tech Palace“. Der Besitzer des Geschäfts hat vor Kurzem ein großes Display aufgestellt, um damit Werbebotschaften anzuzeigen und Kundinnen und Kunden, die ihre Treuekarte am Eingang scannen, einen besonderen Gruß zu zeigen. Das Display besteht aus vielen kleinen LEDs und kann mehrere Textzeilen anzeigen.

Der Ladenbesitzer braucht deine Hilfe bei dem Code, mit dem der Text für das neue Display erzeugt wird.

1. Erstelle die Willkommensnachricht

Für die meisten Kundinnen und Kunden, die ihre Treuekarte scannen, möchte der Besitzer "Welcome to the Tech Palace," gefolgt vom Namen des Kunden in Großbuchstaben auf dem Display sehen.

Implementiere die Funktion WelcomeMessage, die den Namen des Kunden als string-Argument entgegennimmt und die gewünschte Nachricht als string zurückgibt.

WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY

2. Füge einen schicken Rahmen hinzu

Für treue Kundinnen und Kunden, die viel im Geschäft kaufen, möchte der Besitzer das Willkommensdisplay schicker machen, indem er vor und nach der Willkommensnachricht eine Zeile mit Sternen einfügt. Er ist sich noch nicht sicher, wie viele Sterne in den Zeilen stehen sollen, deshalb soll das konfigurierbar sein.

Schreibe eine Funktion AddBorder, die eine Willkommensnachricht (einen string) und die Anzahl der Sterne pro Zeile (Typ int) als Argumente entgegennimmt. Sie soll einen string zurückgeben, der aus 3 Zeilen besteht: einer Zeile mit der gewünschten Anzahl Sterne, dann der Willkommensnachricht, so wie sie übergeben wurde, und dann einer weiteren Zeile mit Sternen.

AddBorder("Welcome!", 10)

Sollte Folgendes zurückgeben:

**********
Welcome!
**********

3. Räume alte Werbebotschaften auf

Bevor das neue Display installiert wurde, hatte das Geschäft ein ähnliches Display, das nur statische, nicht konfigurierbare Zeilen anzeigen konnte. Der Besitzer möchte einige der alten Werbebotschaften auf dem neuen Display wiederverwenden. Die Daten enthalten jedoch bereits einen Sternenrahmen und einige unglückliche Leerzeichen. Deine Aufgabe ist es, die Nachrichten aufzuräumen, damit sie wiederverwendet werden können.

Implementiere eine Funktion CleanUpMessage, die die alte Werbebotschaft als String entgegennimmt. Die Funktion sollte zuerst alle Sterne aus dem Text entfernen und danach die führenden und nachfolgenden Leerzeichen aus dem verbleibenden Text entfernen. Anschließend sollte die Funktion die aufgeräumte Nachricht zurückgeben.

message := `
**************************
*    BUY NOW, SAVE 10%   *
**************************
`

CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Go Exercism

Bereit, mit Willkommen im Tech Palace! zu starten?

Melde dich bei Exercism an, um Go mit 34 Konzepte166 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.