Kurzusok
/
Crystal
Crystal
/
Feladatok
/
Gimis szerelem
Gimis szerelem

Gimis szerelem

Tanulófeladat

Bevezetés

A String osztálynak számos metódusa van, amelyekkel stringeket manipulálhatsz.
Ezeket a metódusokat magán a stringen hívod meg, és gyakran láncba fűzve több műveletet is végrehajtanak egy stringen.

Az alábbiakban a leggyakoribb metódusok közül sorolunk fel néhányat. A metódusok teljes listáját a String API-dokumentációban találod.

String#upcase és String#downcase

Az upcase metódus egy új stringet ad vissza, amelyben minden karakter nagybetűre van alakítva.

"hello".upcase
# => "HELLO"

A downcase metódus egy új stringet ad vissza, amelyben minden karakter kisbetűre van alakítva.

"HELLO".downcase
# => "hello"

String#sub és String#gsub

A Crystalben vannak metódusok egy string részeinek cseréjére. Ezek a sub (helyettesítés) és a gsub (globális helyettesítés).

Ezek a metódusok első argumentumként stringet, karaktert vagy regexet, másodikként pedig stringet vagy karaktert fogadhatnak. Az első argumentum a string azon része, amelyet lecserélünk, a második pedig a csere. A Char típust és a regexeket későbbi fogalmakban magyarázzuk el.

A sub metódus az első argumentum első előfordulását cseréli le a második argumentumra.

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

A gsub metódus ugyanúgy működik, mint a sub, de az első argumentum összes előfordulását lecseréli a második argumentumra.

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

String#chomp és String#strip

A chomp és a strip segítségével eltávolíthatod a nem kívánt karaktereket egy stringből.

A chomp metódus alapértelmezés szerint a string végéről eltávolítja az utolsó \r, \n vagy \r\n karaktereket. Ha a metódust argumentummal hívod meg, akkor a megadott értéket távolítja el a string végéről, amennyiben az ott szerepel.

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

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

A strip metódus alapértelmezés szerint eltávolítja a string elejéről és végéről az összes whitespace karaktert. Ha a metódust argumentummal hívod meg, akkor azt az argumentumot távolítja el a string elejéről és végéről, amennyiben az ott szerepel.

" hello ".strip
# => "hello"

String#index

Az index metódussal megkeresheted egy karakter indexét egy stringben. Az index metódus argumentumként String-et, Char-t vagy regexet fogad. Opcionálisan egy második argumentumot is kaphat, amellyel megadhatod, melyik indextől keressen. Az index metódus az argumentum első előfordulásának indexét adja vissza.

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

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

String#delete_at

A delete_at metódussal eltávolíthatsz egy karaktert egy stringből. A delete_at metódus argumentumként egy indexet kap, és eltávolítja az adott indexen álló karaktert.

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

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

String#insert

Az insert metódussal egy adott indexre szúrhatsz be egy stringet. Az insert metódus első argumentumként egy indexet, másodikként egy stringet kap. Az insert metódus egy új stringet ad vissza, amelyben a második argumentum az adott indexre van beszúrva.

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

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

Utasítások

Ebben a feladatban középiskolás szerelmeseknek segítesz, hogy szerelmet valljanak a közösségi médiában. Ehhez egy ASCII szívet generálsz a kezdőbetűikkel:

❤ J.  +  M. ❤

1. Tisztítsd meg a nevet

Valósítsd meg a HighSchoolSweetheart.clean_up_name metódust. A metódus vegyen egy nevet, távolítsa el belőle az összes - karaktert, és cserélje le őket szóközre. A név elejéről és végéről is távolítsa el a szóközöket.

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

2. Kérd le a név első betűjét

Valósítsd meg a HighSchoolSweetheart.first_letter metódust. A metódus vegyen egy nevet, és adja vissza annak első betűjét. Ügyelj rá, hogy újra felhasználd az előző lépésben definiált HighSchoolSweetheart.clean_up_name metódust.

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

3. Formázd az első betűt kezdőbetűvé

Valósítsd meg a HighSchoolSweetheart.initial metódust. A metódus vegyen egy nevet, és adja vissza annak első betűjét nagybetűvel, mögötte egy ponttal. Ügyelj rá, hogy újra felhasználd az előző lépésben definiált HighSchoolSweetheart.first_letter metódust.

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

4. Tedd a kezdőbetűket a szív belsejébe

Valósítsd meg a HighSchoolSweetheart.pair metódust. A metódus vegyen két nevet, és adja vissza a kezdőbetűket, körülöttük emoji szívekkel. Ügyelj rá, hogy újra felhasználd az előző lépésben definiált HighSchoolSweetheart.initial metódust.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B.  +  R. ❤"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Crystal Exercism

Készen állsz elkezdeni a(z) Gimis szerelem feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Crystal nyelvet 26 fogalom142 feladat segítségével, valódi emberi mentorálással, mindez ingyen.