Torna al blog

Lavorare con le stringhe in Ruby

Lavorare con le stringhe in Ruby

Ruby è un linguaggio di programmazione interpretato, dinamico, riflessivo, orientato agli oggetti. Sviluppato da Yukihiro Matsumoto, Ruby si concentra sulla semplicità e sulla produttività. La sintassi elegante consente agli sviluppatori di leggere e scrivere codice più facilmente.

In questa guida, lavoreremo con le stringhe in Ruby.

Prerequisiti

Per eseguire i passaggi illustrati in questo tutorial, sono necessari i seguenti componenti:

Il tipo di dati String

Nella programmazione, una stringa è un tipo di dati comune supportato da ogni linguaggio di programmazione moderno. È caratterizzata da una sequenza di caratteri. L'intera sequenza di caratteri viene trattata come un singolo dato. Una stringa può contenere lettere dell'alfabeto, cifre e caratteri/simboli speciali.

Ruby, essendo un linguaggio di programmazione puramente orientato agli oggetti, tratta le stringhe come oggetti. A differenza di molti altri linguaggi, las stringhe in Ruby sono mutabili. Sostanzialmente, il valore della stringa può essere modificato in loco.

Passo 1 – Creazione e stampa di stringhe

In Ruby, le stringhe sono racchiuse tra virgolette singole ( ') o virgolette doppie ( "). Di seguito sono riportate due stringhe valide in Ruby:

Per stampare qualsiasi output sulla schermata della console, Ruby include il metodo print:

È ora di metterlo in pratica. Crea un nuovo file Ruby practice.rb e inserisci i seguenti codici:

Esegui il codice:

Strings in Ruby 1

Come previsto, il comando print stampa le stringhe fornite. Se vogliamo stampare le stringhe su righe separate, è meglio usare invece puts. Aggiorna il codice:

Successivamente, esegui nuovamente il codice:

Strings in Ruby 2

Passo 2 – Variabili stringa

Le variabili sono nomi che si riferiscono a una posizione specifica nella memoria del computer in cui è memorizzato un valore. Possiamo memorizzare il valore desiderato nella variabile e usarlo in seguito.

In Ruby, per dichiarare una variabile stringa, definisci il nome della variabile e assegna un valore stringa:

Scrivi il seguente codice in practice.rb:

Esegui il codice:

Qui:

  • Abbiamo definito due variabili first_half e second_half, a ciascuna delle quali è assegnato un valore stringa.
  • Il metodo puts stampa il valore delle variabili.

Passo 3 – Concatenazione di stringhe

Concatenando, possiamo prendere più stringhe e unirle insieme per creare una nuova stringa. La concatenazione di stringhe è indicata dall'operatore di concatenazione ( +). Nota che questo simbolo è anche l'operatore di addizione quando si lavora con operazioni aritmetiche.

Proviamo a eseguire la concatenazione di stringhe sulle stringhe che abbiamo dichiarato finora:

Esegui il codice:

Come mostra l'output, la concatenazione non introduce alcun carattere aggiuntivo tra le stringhe. Ecco perché fox e jumps sono uniti insieme. Possiamo risolvere questo problema introducendo uno spazio vuoto dopo fox:

Esegui il codice:

Ora l'output ha un aspetto migliore.

La concatenazione di stringhe funziona anche con le variabili. Dai un'occhiata al seguente esempio:

Strings in Ruby 3

Esegui il codice:

Il prossimo esempio mostra una lunga catena di concatenazione:

Strings in Ruby 4

Esegui il codice:

Finora abbiamo gestito solo variabili stringa. Cosa succederebbe se ci fossero diversi tipi di variabili? Il seguente programma testa questo scenario:

Strings in Ruby 5

Quando si tenta di eseguire questo programma, Ruby restituirà un messaggio di errore:

Tuttavia, possiamo convertire l'intero in una stringa per evitare questo problema:

Strings in Ruby 6

Qui:

  • Il metodo to_s converte il valore della variabile in una stringa.

Convertire i numeri in stringhe è un'operazione comune quando si ha a che fare con elementi come codici postali, valute, numeri di telefono e altri dati numerici.

Passo 4 – Interpolazione di stringhe

Sebbene la concatenazione di stringhe sia una funzionalità potente, può diventare complicata molto facilmente. In molte situazioni, probabilmente ti accorgerai di aver dimenticato un operatore di concatenazione ( +), causando un bel mal di testa. Inoltre, quando si ha a che fare con diversi tipi di dati, questi devono prima essere convertiti in una stringa. Fortunatamente, Ruby offre altri modi per inserire i valori delle variabili in una stringa utilizzando la funzionalità interpolazione di stringhe.

Ecco come si presenta. Ad esempio, invece di usare:

Useremo:

Anche se la sintassi può sembrare un po' strana, semplifica notevolmente il codice. Non c'è bisogno di chiamare manualmente il metodo to_s per convertire il valore della variabile in stringa.

Usiamo questa nuova tecnica per aggiornare il nostro codice precedente:

Strings in Ruby 7

Esegui il codice:

Passo 5 – Letterali stringa e valori stringa

Noterai che le stringhe dichiarate nel codice sono sempre racchiuse tra virgolette. Tuttavia, quando si stampa l'output sullo schermo della console, non ci sono virgolette. C'è chiaramente una distinzione tra le due cose.

  • Letterale stringa: è la stringa scritta nel codice sorgente (incluse le virgolette).
  • Valore stringa: è il valore che viene stampato nell'output (senza le virgolette).

Ad esempio, il seguente è un letterale stringa:

Il suo valore stringa sarebbe ciao mondo.

Passo 6 – Escape di virgolette e apostrofi

Come abbiamo dimostrato, le virgolette e gli apostrofi vengono utilizzati per indicare le stringhe nel codice sorgente. Questo pone un problema: non puoi averli direttamente nella stringa. Altrimenti, causerà problemi. Il seguente codice lo dimostra:

Strings in Ruby 8

Ci sono diverse tattiche per aggirare questo problema.

  • Utilizzo della sintassi alternativa per le stringhe

Questo è il modo più semplice per aggirare il problema. Se la tua stringa ha bisogno di virgolette singole, usa le virgolette doppie nel letterale stringa (e viceversa).

Sistemiamo l'esempio precedente:

Un altro esempio potrebbe essere:

Tuttavia, non funzionerà in ogni situazione. Ad esempio:

  • Utilizzo dei caratteri di escape

Il carattere backslash ( \) viene spesso definito carattere di escape. Impedisce a Ruby di interpretare letteralmente il carattere successivo. Sistemiamo l'esempio precedente. Usa il backslash per impedire a Ruby di interpretare le virgolette doppie interne come letterali:

  • Uso della sintassi alternativa

Finora abbiamo lavorato solo con virgolette singole e doppie per indicare la stringa letterale. Tuttavia, gli esempi precedenti sono semplici dimostrazioni di come la situazione possa sfuggire di mano molto rapidamente. Per risolvere questo problema, possiamo abbandonare del tutto le virgolette e utilizzare un simbolo completamente diverso per indicare l'inizio e la fine di una stringa.

Dai un'occhiata al seguente esempio:

Qui:

    • Il simbolo % definisce il carattere successivo ( $, in questo caso) come delimitatore della stringa.
    • La stringa letterale qui è $la volpe marrone veloce disse, "ho saltato sopra il cane pigro"$.

Mettiamolo in azione:

Qui, la stringa viene fondamentalmente trattata come segue:

Tuttavia, introduce nuovamente il problema dell'escape del delimitatore se questo viene utilizzato nella stringa. Un modo per evitarlo è utilizzare simboli che generalmente non compaiono nelle stringhe. Tali simboli potrebbero includere parentesi graffe, parentesi quadre, ecc.:

Funziona perfettamente anche con le interpolazioni di stringhe:

È anche comune usare %Q{} e %q{} per definire le stringhe nei programmi Ruby. Qui, %Q{} si comporta come le doppie virgolette e %q{} si comporta come le virgolette singole.

Passo 7 – Nuove righe e stringhe lunghe

Quando si lavora con le stringhe, ci saranno situazioni in cui si desidera introdurre una nuova riga o un ritorno a capo nella stringa. Possiamo farlo introducendo i caratteri di escape \n (nuova riga) e \r (ritorno a capo).

Dai un'occhiata al seguente esempio:

La stringa letterale sembra confusa, vero? Riorganizziamola per una migliore leggibilità:

Invece di dichiarare manualmente i caratteri di nuova riga, possiamo anche utilizzare la seguente struttura:

Strings in Ruby 8

Strings in Ruby 9

In questo metodo, la stringa conserva tutti gli spazi vuoti. Tuttavia, questo rovina l'output. Rimuovi gli spazi vuoti extra per risolvere il problema:

Strings in Ruby 10

Sebbene il problema dello spazio vuoto sia stato risolto, ciò riduce la leggibilità del codice. We can fix this issue by implementing a heredoc, un termine per stringhe letterali multilinea. Il codice aggiornato si presenterebbe così:

Strings in Ruby 11

Strings in Ruby 12

A partire da Ruby v2.3 e versioni successive, è disponibile un'altra funzionalità, chiamata sintassi squiggly heredoc. Rimuove lo spazio vuoto iniziale nelle stringhe. Per esprimere un squiggly heredoc, sostituisci il trattino ( -) con una tilde ( ~):

Strings in Ruby 13

Passaggio 8 – Replicare le stringhe

In alcune situazioni, potrebbe essere necessario ripetere una stringa più volte. Ruby consente di replicare le stringhe in vari modi.

Una di queste tecniche consiste nell'usare l' * operatore. In genere, viene utilizzato come operatore di moltiplicazione quando si ha a che fare con i numeri. Quando si ha a che fare con le stringhe, tuttavia, diventa l'operatore di replicazione delle stringhe, ripetendo la singola stringa tutte le volte necessarie. Il numero di ripetizioni deve essere un numero intero.

Nel seguente esempio, il testo Boris verrà ripetuto 5 volte:

Strings in Ruby 14

Utilizzando questa funzionalità, possiamo produrre della fantastica ASCII art. Dai un'occhiata al seguente esempio:

Considerazioni finali

Le stringhe, nella programmazione, sono fondamentali. Questa guida mostra come lavorare con le stringhe in Ruby. Abbiamo imparato a creare stringhe e a eseguire varie operazioni come la concatenazione, la gestione delle nuove righe, delle virgolette, ecc. Utilizzando l'interpolazione delle stringhe, abbiamo anche imparato a integrare meglio i valori delle variabili nelle stringhe. Utilizzando l'operatore di replicazione delle stringhe, possiamo anche ripetere una singola stringa più volte.

Sebbene Ruby, di per sé, sia un eccellente linguaggio di programmazione, viene spesso combinato con il framework Rails. Ruby on Rails è un framework per applicazioni web open-source. Scopri di più su come installare Ruby on Rails su Ubuntu. Tuttavia, Ruby può funzionare anche con altre applicazioni, come MySQL e PostgreSQL.

Buona programmazione!

author

Preslav Dobrev

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.