Vissza a bloghoz

Munka karakterláncokkal Ruby-ban

Munka karakterláncokkal Ruby-ban

Ruby egy értelmezett, dinamikus, reflektív, objektumorientált programozási nyelv. A Yukihiro Matsumoto által kifejlesztett Ruby az egyszerűségre és a produktivitásra összpontosít. Az elegáns szintaxis lehetővé teszi a fejlesztők számára a kód könnyebb olvasását és írását.

Ebben az útmutatóban karakterláncokkal fogunk dolgozni Ruby-ban.

Előfeltételek

Az ebben az útmutatóban bemutatott lépések végrehajtásához a következő összetevőkre van szüksége:

A String adattípus

A programozásban a karakterlánc egy gyakori adattípus, amelyet minden modern programozási nyelv támogat. Karakterek sorozata jellemzi. A teljes karaktersorozatot egyetlen adategységként kezeli a rendszer. Egy karakterlánc tartalmazhat betűket, számjegyeket és különleges karaktereket/szimbólumokat.

A Ruby, mint tiszta objektumorientált programozási nyelv, a karakterláncokat objektumként kezeli. Sok más nyelvvel ellentétben a Ruby-ban a karakterláncok módosíthatók. Alapvetően a karakterlánc értéke helyben megváltoztatható.

1. lépés – Karakterláncok létrehozása és kiíratása

A Ruby-ban a karakterláncokat vagy egyszeres idézőjelek ( ') vagy kettős idézőjelek ( ") határolják. Az alábbi két érvényes karakterlánc a Ruby-ban:

Bármilyen kimenet konzolra történő kiíratásához a Ruby a következő metódust biztosítja: print metódus:

Ideje átültetni a gyakorlatba. Hozzon létre egy új Ruby fájlt practice.rb névvel, és írja be a következő kódokat:

Run the code:

Strings in Ruby 1

Ahogy az várható volt, a print parancs kiírja a megadott karakterláncokat. Ha külön sorokba szeretnénk kiíratni a karakterláncokat, jobb, ha inkább a puts metódust használjuk. Frissítse a kódot:

Ezután futtassa újra a kódot:

Strings in Ruby 2

2. lépés – Karakterlánc változók

A változók olyan nevek, amelyek a számítógép memóriájának egy meghatározott helyére utalnak, ahol egy érték van tárolva. A kívánt értéket eltárolhatjuk a változóban, és később felhasználhatjuk.

Ruby-ban egy karakterlánc változó deklarálásához határozza meg a változó nevét, és rendeljen hozzá egy karakterlánc értéket:

Írja be a következő kódot a practice.rb:

Futtassa a kódot:

Itt:

  • Definiáltunk két változót, a first_half és a second_half változókat, amelyek mindegyikéhez hozzárendeltünk egy karakterlánc értéket.
  • A puts metódus kiírja a változók értékét.

3. lépés – Karakterláncok összefűzése

Az összefűzéssel több karakterláncot vehetünk és kapcsolhatunk össze egy új karakterlánc létrehozásához. A karakterláncok összefűzését az összefűzés operátor ( +) jelöli. Vegye figyelembe, hogy ez a szimbólum az összeadás operátora is, amikor aritmetikai műveletekkel dolgozunk.

Próbáljuk meg elvégezni a karakterláncok összefűzését az eddig deklarált karakterláncokon:

Futtassa a kódot:

Ahogy a kimenet mutatja, az összefűzés nem szúr be semmilyen további karaktert a karakterláncok közé. Ezért van az, hogy a fox és a jumps szavak egybeolvadnak. Ezt kijavíthatjuk egy szóköz beiktatásával a fox:

Futtassa a kódot:

Most már jobban néz ki a kimenet.

A karakterláncok összefűzése változókkal is működik. Tekintse meg a következő példát:

Strings in Ruby 3

Run the code:

A következő példa az összefűzés (konkatenáció) egy hosszú láncolatát mutatja be:

Strings in Ruby 4

Futtasd a kódot:

Eddig csak karakterlánc (string) változókkal foglalkoztunk. Mi van akkor, ha különböző változótípusok vannak? A következő program ezt a forgatókönyvet teszteli:

Strings in Ruby 5

Amikor megpróbálod futtatni ezt a programot, a Ruby egy hibaüzenetet fog dobni:

Azonban átalakíthatjuk az egészet karakterlánccá, hogy elkerüljük ezt a problémát:

Strings in Ruby 6

Itt:

  • A to_s metódus karakterlánccá alakítja a változó értékét.

A számok karakterlánccá alakítása gyakori jelenség, amikor olyan elemekkel dolgozunk, mint az irányítószámok, pénznemek, telefonszámok és egyéb numerikus adatok.

4. lépés – Karakterlánc-interpoláció

Bár a karakterláncok összefűzése egy hatékony funkció, nagyon könnyen trükkössé válhat. Sok helyzetben valószínűleg azon kapod magad, hogy hiányolod az összefűzés operátort ( +), ami nagy fejfájást okozhat. Ráadásul, ha különböző adattípusokkal dolgozol, először karakterlánccá kell alakítani őket. Szerencsére a Ruby más módszereket is kínál a változóértékek karakterláncba történő beillesztésére a karakterlánc-interpoláció.

Így néz ki. Például ahelyett, hogy ezt használnád:

Ezt fogjuk használni:

Bár a szintaxis kissé furcsának tűnhet, drámaian leegyszerűsíti a kódot. Nem szükséges manuálisan meghívni a to_s metódust a változó értékének karakterlánccá alakításához.

Használjuk ezt az új technikát a korábbi kódunk frissítésére:

Strings in Ruby 7

Futtasd a kódot:

5. lépés – Karakterlánc-literálok és karakterlánc-értékek

Figyeld meg, hogy a kódban deklarált karakterláncokat mindig idézőjelek veszik körül. Amikor azonban a kimenetet a konzol képernyőjére nyomtatjuk, nincsenek idézőjelek. Egyértelműen különbség van köztük.

  • Karakterlánc-literál: Ez a forráskódban leírt karakterlánc (az idézőjelekkel együtt).
  • Karakterlánc-érték: Ez a kimeneten megjelenő érték (idézőjelek nélkül).

Például a következő egy karakterlánc-literál:

Ennek a karakterlánc-értéke a következő lenne: hello világ.

6. lépés – Idézőjelek és aposztrófok eszképelése

Mint bemutattuk, az idézőjeleket és aposztrófokat a karakterláncok jelölésére használjuk a forráskódban. Ez problémát jelent: nem szerepelhetnek közvetlenül a karakterláncban. Ellenkező esetben problémákat okoznak. A következő kód ezt szemlélteti:

Strings in Ruby 8

Különböző taktikák léteznek a probléma megkerülésére.

  • Alternatív karakterlánc-szintaxis használata

Ez a legegyszerűbb módja a probléma megkerülésének. Ha a karakterláncnak egyszeres idézőjelekre van szüksége, használj dupla idézőjeleket a karakterlánc-literálban (és fordítva).

Javítsuk ki az előző példát:

Egy másik példa:

Azonban ez nem fog minden helyzetben működni. Például:

  • Eszkép karakterek használata

A fordított perjel ( \) karakterre gyakran eszkép (escape) karakterként hivatkoznak. Megakadályozza, hogy a Ruby a következő karaktert szó szerint értelmezze. Javítsuk ki az előző példát. Használj fordított perjelt, hogy megakadályozd, hogy a Ruby a belső dupla idézőjeleket literálként értelmezze:

  • Alternatív szintaxis használata

Eddig csak egyszeres és kétszeres idézőjelekkel dolgoztunk a karakterlánc-literál jelölésére. A korábbi példák azonban egyszerűen bemutatják, hogyan válhat ez nagyon gyorsan kezelhetetlenné. A probléma megoldására teljesen elhagyhatjuk az idézőjeleket, és egy teljesen más szimbólumot használhatunk a karakterlánc kezdetének és végének jelölésére.

Tekintse meg a következő példát:

Itt:

    • A szimbólum% határozza meg a következő karaktert ( $, ebben az esetben) a karakterlánc határolójaként.
    • A karakterlánc-literál itt a következő: $the quick brown fox said, "I jumped over the lazy dog"$.

Tegyük át a gyakorlatba:

Itt a karakterlánc alapvetően a következőként van kezelve:

Ez azonban újra előhozza a határolójel escape-elésének problémáját, ha azt használják a karakterláncon belül. Ennek elkerülésére az egyik módszer olyan szimbólumok használata, amelyek általában nem jelennek meg a karakterláncokban. Ilyen szimbólumok lehetnek például a kapcsos zárójelek, szögletes zárójelek stb.:

Kiválóan működik karakterlánc-interpolációval is:

Gyakori továbbá a %Q{} és %q{} használata karakterláncok definiálására a Ruby programokban. Itt a %Q{} úgy működik, mint a dupla idézőjel, a %q{} pedig mint az egyszeres idézőjel.

7. lépés – Új sorok és hosszú karakterláncok

Karakterláncokkal való munka során előfordulhatnak olyan helyzetek, amikor új sort vagy kocsivissza (carriage return) karaktert szeretne beszúrni a karakterláncba. Ezt megtehetjük az \n (új sor) és \r (kocsivissza) escape karakterek bevezetésével.

Tekintse meg a következő példát:

A karakterlánc-literál zavarosnak tűnik, igaz? Rendezzük át a jobb olvashatóság érdekében:

Az új sor karakterek manuális deklarálása helyett a következő struktúrát is használhatjuk:

Strings in Ruby 8

Strings in Ruby 9

Ebben a módszerben a karakterlánc megőrzi az összes szóközt. Ez azonban elrontja a kimenetet. A javításhoz távolítsa el a felesleges szóközöket:

Strings in Ruby 10

Bár a szóközprobléma megoldódott, ez csökkenti a kód olvashatóságát. Ezt a problémát egy heredoc implementálásával javíthatjuk, ami a többsoros karakterlánc-literálok elnevezése. A frissített kód így nézne ki:

Strings in Ruby 11

Strings in Ruby 12

A Ruby v2.3-as és újabb verzióitól kezdve elérhető egy másik funkció is, amelyet hullámos (squiggly) heredoc szintaxisnak neveznek. Ez eltávolítja a kezdő szóközöket a karakterláncokból. Egy hullámos (squiggly) heredoc kifejezéséhez cserélje ki a kötőjelet ( -) egy hullámvonalra ( ~):

Strings in Ruby 13

8. lépés – Karakterláncok ismétlése

Bizonyos helyzetekben szükség lehet egy karakterlánc többszöri megismétlésére. A Ruby különböző módokat kínál a karakterláncok replikálására.

Az egyik ilyen technika a * operátor használata. Általában ezt szorzás operátorként használják számok esetén. Karakterláncok esetén azonban ez lesz a karakterlánc-ismétlő operátor, amely a megadott karakterláncot annyiszor ismétli meg, ahányszor szükséges. Az ismétlések számának egész számnak kell lennie.

A következő példában a Boris szöveg 5-ször fog megismétlődni:

Strings in Ruby 14

Ezzel a funkcióval klassz ASCII-művészetet is készíthetünk. Tekintse meg a következő példát:

Záró gondolatok

A karakterláncok alapvető fontosságúak a programozásban. Ez az útmutató bemutatja a karakterláncok kezelését Ruby-ban. Megtanultuk, hogyan hozhatunk létre karakterláncokat, és hogyan végezhetünk el különféle műveleteket, például az összefűzést, az új sorok kezelését, az idézőjeleket stb. A karakterlánc-interpoláció segítségével azt is megtanultuk, hogyan lehet a változók értékeit jobban beépíteni a karakterláncokba. A karakterlánc-ismétlő operátor használatával egyetlen karakterláncot is megismételhetünk többször.

Bár a Ruby önmagában is egy kiváló programozási nyelv, gyakran kombinálják a Rails keretrendszerrel. Ruby on Rails egy nyílt forráskódú webalkalmazás-keretrendszer. Tudjon meg többet a Ruby on Rails Ubuntu-ra történő telepítéséről telepítéséről. A Ruby azonban más alkalmazásokkal is együttműködik, mint például a MySQL és PostgreSQL.

Kellemes programozást!

author

Preslav Dobrev

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.