Terug naar blog

Werken met strings in Ruby

Werken met strings in Ruby

Ruby is een geïnterpreteerde, dynamische, reflectieve, objectgeoriënteerde programmeertaal. Ruby is ontwikkeld door Yukihiro Matsumoto en richt zich op eenvoud en productiviteit. De elegante syntaxis stelt ontwikkelaars in staat om code gemakkelijker te lezen en te schrijven.

In deze handleiding gaan we werken met strings in Ruby.

Vereisten

Om de stappen in deze tutorial uit te voeren, heeft u de volgende componenten nodig:

Het gegevenstype String

In programmeren is een string een veelvoorkomend gegevenstype dat elke moderne programmeertaal ondersteunt. Het wordt gekenmerkt door een reeks tekens. De gehele reeks tekens wordt behandeld als één enkel gegeven. Een string kan letters, cijfers en speciale tekens/symbolen bevatten.

Omdat Ruby een pure objectgeoriënteerde programmeertaal is, behandelt het strings als objecten. In tegenstelling tot veel andere talen zijn strings in Ruby veranderlijk. In feite kan de stringwaarde ter plekke worden gewijzigd.

Stap 1 – Strings maken en afdrukken

In Ruby worden strings omgeven door ofwel enkele aanhalingstekens ( ') of dubbele aanhalingstekens ( "). De volgende zijn twee geldige strings in Ruby:

Om uitvoer naar het consolescherm af te drukken, wordt Ruby geleverd met de print-methode:

Tijd om dit in de praktijk te brengen. Maak een nieuw Ruby-bestand practice.rb en voer de volgende codes in:

Voer de code uit:

Strings in Ruby 1

Zoals verwacht drukt de print-opdracht de opgegeven strings af. Als we de strings op aparte regels willen afdrukken, is het beter om in plaats daarvan puts te gebruiken. Werk de code bij:

Voer vervolgens de code opnieuw uit:

Strings in Ruby 2

Stap 2 – Stringvariabelen

Variabelen zijn namen die verwijzen naar een specifieke plaats in het computergeheugen waar een waarde is opgeslagen. We kunnen de gewenste waarde in de variabele opslaan en deze later gebruiken.

Om in Ruby een stringvariabele te declareren, definieert u de variabelenaam en wijst u een stringwaarde toe:

Schrijf de volgende code in practice.rb:

Voer de code uit:

Hier:

  • We hebben twee variabelen gedefinieerd, first_half en second_half, elk met een toegewezen stringwaarde.
  • De puts-methode drukt de waarde van de variabelen af.

Stap 3 – String-samenvoeging

Door samen te voegen (concatenatie), kunnen we meerdere strings nemen en ze samenvoegen om een nieuwe string te maken. String-samenvoeging wordt aangeduid met de samenvoegingsoperator ( +). Merk op dat dit symbool ook de optellingsoperator is bij het werken met rekenkundige bewerkingen.

Laten we proberen string-samenvoeging uit te voeren op de strings die we tot nu toe hebben gedeclareerd:

Voer de code uit:

Zoals de uitvoer laat zien, introduceert samenvoeging geen extra tekens tussen de strings. Daarom zijn fox en jumps samengevoegd. We kunnen dit oplossen door een spatie in te voegen na fox:

Voer de code uit:

Nu ziet de uitvoer er beter uit.

String-samenvoeging werkt ook met variabelen. Bekijk het volgende voorbeeld:

Strings in Ruby 3

Voer de code uit:

Het volgende voorbeeld toont een lange keten van aaneenschakeling:

Strings in Ruby 4

Voer de code uit:

Tot nu toe hebben we alleen te maken gehad met string-variabelen. Wat als er verschillende variabelentypen waren? Het volgende programma test dit scenario:

Strings in Ruby 5

Wanneer je dit programma probeert uit te voeren, zal Ruby een foutmelding geven:

We kunnen de integer echter converteren naar een string om dit probleem te voorkomen:

Strings in Ruby 6

Hier:

  • De methode to_s converteert de waarde van de variabele naar een string.

Het converteren van getallen naar strings komt vaak voor bij het werken met elementen zoals postcodes, valuta, telefoonnummers en andere numerieke gegevens.

Stap 4 – String-interpolatie

Hoewel string-concatenatie een krachtige functie is, kan het heel snel ingewikkeld worden. In veel situaties zul je waarschijnlijk merken dat je een concatenatie-operator mist ( +), wat tot grote hoofdpijn leidt. Bovendien moet het, bij het werken met verschillende gegevenstypen, eerst naar een string worden geconverteerd. Gelukkig biedt Ruby andere manieren om variabele waarden in een string te injecteren met behulp van de functie string-interpolatie.

Dit is hoe het eruitziet. Bijvoorbeeld, in plaats van het gebruik van:

We zullen gebruiken:

Hoewel de syntaxis er misschien een beetje vreemd uitziet, vereenvoudigt het de code aanzienlijk. Het is niet nodig om handmatig de to_s methode aan te roepen om de waarde van de variabele naar een string te converteren.

Laten we deze nieuwe techniek gebruiken om onze vorige code bij te werken:

Strings in Ruby 7

Voer de code uit:

Stap 5 – String-literals en string-waarden

Merk op dat strings die in de code worden gedeclareerd altijd tussen aanhalingstekens staan. Wanneer de uitvoer echter op het consolescherm wordt afgedrukt, zijn er geen aanhalingstekens. Er is duidelijk een verschil tussen beide.

  • String-literal: Het is de string die in de broncode is geschreven (inclusief de aanhalingstekens).
  • String-waarde: Het is de waarde die op de uitvoer wordt afgedrukt (zonder de aanhalingstekens).

Het volgende is bijvoorbeeld een string-literal:

De string-waarde ervan zou zijn hallo wereld.

Stap 6 – Escapen van aanhalingstekens en apostrofen

Zoals we hebben laten zien, worden aanhalingstekens en apostrofen gebruikt om strings in de broncode aan te duiden. Dit vormt een probleem: je kunt ze niet rechtstreeks in de string opnemen. Anders veroorzaakt dit problemen. De volgende code toont dit aan:

Strings in Ruby 8

Er zijn verschillende tactieken om dit probleem te omzeilen.

  • Alternatieve string-syntaxis gebruiken

Dit is de eenvoudigste manier om het probleem te omzeilen. Als je string enkele aanhalingstekens nodig heeft, gebruik dan dubbele aanhalingstekens in de string-literal (en vice versa).

Laten we het vorige voorbeeld corrigeren:

Een ander voorbeeld is:

Dit zal echter niet in elke situatie werken. Bijvoorbeeld:

  • Escape-tekens gebruiken

De backslash ( \) wordt vaak het escape-teken genoemd. Het voorkomt dat Ruby het volgende teken letterlijk interpreteert. Laten we het vorige voorbeeld corrigeren. Gebruik de backslash om te voorkomen dat Ruby de interne dubbele aanhalingstekens als literals interpreteert:

  • Alternatieve syntaxis gebruiken

Tot nu toe hebben we alleen met enkele en dubbele aanhalingstekens gewerkt om de string literal aan te duiden. De voorgaande voorbeelden zijn echter eenvoudige demonstraties van hoe dit heel snel uit de hand kan lopen. Om dit probleem op te lossen, kunnen we de aanhalingstekens helemaal weglaten en een compleet ander symbool gebruiken om het begin en einde van een string aan te duiden.

Bekijk het volgende voorbeeld eens:

Hier:

    • Het symbool % definieert het volgende karakter ( $, in dit geval) als het scheidingsteken van de string.
    • De string literal is hier $the quick brown fox said, "I jumped over the lazy dog"$.

Laten we het in de praktijk brengen:

Hier wordt de string in feite als volgt behandeld:

Het introduceert echter opnieuw het probleem van het escapen van het scheidingsteken als dit in de string wordt gebruikt. Een manier om dit te vermijden is door symbolen te gebruiken die over het algemeen niet in strings voorkomen. Dergelijke symbolen kunnen accolades, rechte haken, enz. zijn:

Het werkt ook perfect met string-interpolaties:

Het is ook gebruikelijk om %Q{} en %q{} te gebruiken om strings te definiëren in Ruby-programma's. Hier werkt %Q{} als dubbele aanhalingstekens en %q{} als enkele aanhalingstekens.

Step 7 – Nieuwe regels en lange strings

Bij het werken met strings zullen er situaties zijn waarin je een nieuwe regel of carriage return in de string wilt introduceren. Dit kunnen we doen door de escape-karakters \n (newline) en \r (carriage return) te introduceren.

Bekijk het volgende voorbeeld eens:

De string-literal ziet er verwarrend uit, toch? Laten we deze herschikken voor een betere leesbaarheid:

In plaats van handmatig de newline-karakters te declareren, kunnen we ook de volgende structuur gebruiken:

Strings in Ruby 8

Strings in Ruby 9

Bij deze methode behoudt de string alle spaties. Dit verstoort echter de uitvoer. Verwijder de extra spaties om dit op te lossen:

Strings in Ruby 10

Hoewel het probleem met de witruimte is opgelost, vermindert dit de leesbaarheid van de code. We kunnen dit probleem oplossen door een heredoc, een term voor multi-line string literals. De bijgewerkte code zou er als volgt uitzien:

Strings in Ruby 11

Strings in Ruby 12

Vanaf Ruby v2.3 en hoger is er nog een functie beschikbaar, genaamd squiggly heredoc syntaxis. Deze verwijdert de leidende witruimte in de strings. Om een squiggly heredoc uit te drukken, vervang je het koppelteken ( -) door een tilde ( ~):

Strings in Ruby 13

Stap 8 – Strings dupliceren

In sommige situaties kan het nodig zijn om een string meerdere keren te herhalen. Ruby maakt het mogelijk om strings op verschillende manieren te dupliceren.

Eén zo'n techniek is het gebruik van de * operator. Over het algemeen wordt deze gebruikt als de vermenigvuldigingsoperator bij getallen. Bij strings wordt het echter de stringreplicatie-operator, die de enkele string zo vaak als nodig herhaalt. Het aantal herhalingen moet een geheel getal zijn.

In het volgende voorbeeld wordt de tekst Boris 5 keer herhaald:

Strings in Ruby 14

Met deze functie kunnen we coole ASCII-art maken. Bekijk het volgende voorbeeld:

Laatste gedachten

Strings zijn onmisbaar bij het programmeren. Deze gids laat zien hoe je met strings werkt in Ruby. We hebben geleerd hoe je strings maakt en verschillende bewerkingen uitvoert, zoals aaneenschakeling, het omgaan met nieuwe regels, aanhalingstekens, enz. Met behulp van string-interpolatie hebben we ook geleerd hoe we variabele waarden beter in strings kunnen integreren. Met de stringreplicatie-operator kunnen we ook een enkele string meerdere keren herhalen.

Hoewel Ruby op zichzelf een uitstekende programmeertaal is, wordt het vaak gecombineerd met het Rails-framework. Ruby on Rails is een open-source webapplicatie-framework. Lees meer over het installeren van Ruby on Rails op Ubuntu. Ruby kan echter ook met andere applicaties werken, zoals MySQL en PostgreSQL.

Veel programmeerplezier!

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.