A string a Go-ban bájtok megváltoztathatatlan sorozata, amelyek nem feltétlenül karaktereket jelölnek.
A string literált kettős idézőjelek közé írjuk:
const name = "Jane"
A stringek a + operátorral fűzhetők össze:
"Jane" + " " + "Austen"
// => "Jane Austen"
Néhány speciális karaktert egy kezdő visszaperjellel kell escape-elni, például a \t egy tabulátort, a \n pedig egy új sort jelöl a stringekben.
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
A strings csomag sok hasznos függvényt tartalmaz a stringekkel való munkához.
Ha többet szeretnél megtudni a stringfüggvényekről, nézd meg a strings csomag dokumentációját.
Íme néhány példa:
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"
A közelben van egy háztartásigép-bolt, amelyet „Tech Palace”-nak hívnak. A bolt tulajdonosa nemrég felszerelt egy nagy kijelzőt, hogy marketingüzeneteket jelenítsen meg rajta, és hogy különleges üdvözlést mutasson, amikor a vásárlók beolvassák a hűségkártyájukat a bejáratnál. A kijelző rengeteg apró LED-lámpából áll, és több sor szöveget is meg tud jeleníteni.
A bolt tulajdonosának segítségre van szüksége azzal a kóddal kapcsolatban, amely az új kijelző szövegét állítja elő.
A legtöbb vásárló esetében, aki beolvassa a hűségkártyáját, a bolt tulajdonosa azt szeretné, hogy a kijelzőn a "Welcome to the Tech Palace," szöveg jelenjen meg, amelyet a vásárló neve követ csupa nagybetűvel.
Valósítsd meg a WelcomeMessage függvényt, amely a vásárló nevét egy string argumentumként fogadja, és a kívánt üzenetet stringként adja vissza.
WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY
Azoknak a hűséges vásárlóknak, akik sokat vásárolnak az üzletben, a tulajdonos díszesebbé szeretné tenni az üdvözlő kijelzőt azzal, hogy egy-egy csillagsort tesz az üdvözlőüzenet elé és után. Még nem biztos benne, hány csillag legyen a sorokban, ezért ezt beállíthatóvá szeretné tenni.
Írj egy AddBorder függvényt, amely egy üdvözlőüzenetet (egy string) és a soronkénti csillagok számát (int típus) fogadja argumentumként.
Egy stringet kell visszaadnia, amely 3 sorból áll: egy sorból a kívánt számú csillaggal, majd az üdvözlőüzenetből úgy, ahogy átadták, majd egy újabb csillagsorból.
AddBorder("Welcome!", 10)
A következőt kell visszaadnia:
**********
Welcome!
**********
Mielőtt felszerelték ezt az új kijelzőt, a boltnak volt egy hasonló kijelzője, amely csak nem beállítható, statikus sorokat tudott megjeleníteni. A tulajdonos szeretné újra felhasználni néhány régi marketingüzenetet az új kijelzőn. Az adatokban azonban már szerepel egy csillagszegély és néhány szerencsétlen szóköz is. A feladatod, hogy megtisztítsd az üzeneteket, hogy újra felhasználhatók legyenek.
Valósítsd meg a CleanUpMessage függvényt, amely a régi marketingüzenetet egy stringként fogadja.
A függvény először távolítsa el az összes csillagot a szövegből, majd ezután távolítsa el a vezető és záró szóközöket a megmaradt szövegből.
A függvény ezután adja vissza a megtisztított üzenetet.
message := `
**************************
* BUY NOW, SAVE 10% *
**************************
`
CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom166 feladat segítségével, valódi emberi mentorálással, mindez ingyen.