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.
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"
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"
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"
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
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"
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"
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. ❤
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"
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"
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."
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. ❤"
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.