Ruby est un langage de programmation interprété, dynamique, réflexif, orienté objet. Développé par Yukihiro Matsumoto, Ruby met l’accent sur la simplicité et la productivité. Sa syntaxe élégante permet aux développeurs de lire et d’écrire du code plus facilement.
Dans ce guide, nous allons travailler avec des chaînes de caractères en Ruby.
Prérequis
Pour effectuer les étapes présentées dans ce tutoriel, vous avez besoin des composants suivants :
- Un système Ubuntu correctement configuré. En savoir plus sur la configuration de votre propre serveur Ubuntu sur CloudSigma.
- N’importe quel éditeur de texte moderne, de préférence avec coloration syntaxique, par exemple, VS Code, Sublime Text, Atom, Brackets, Vim, etc.
Le type de données chaîne de caractères
En programmation, une chaîne de caractères est un type de données courant pris en charge par tous les langages de programmation modernes. Elle se caractérise par une séquence de caractères. L’ensemble de la séquence de caractères est traité comme une seule donnée. Une chaîne peut contenir des lettres, des chiffres et des caractères spéciaux ou symboles.
Ruby, étant un langage de programmation purement orienté objet, traite les chaînes de caractères comme des objets. Contrairement à de nombreux autres langages, les chaînes de caractères en Ruby sont mutables. En gros, la valeur de la chaîne peut être modifiée sur place.
Étape 1 – Création et affichage de chaînes de caractères
En Ruby, les chaînes de caractères sont entourées soit de guillemets simples ( ') soit de guillemets doubles ( "). Voici deux chaînes de caractères valides en Ruby :
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Pour afficher n’importe quelle sortie sur l’écran de la console, Ruby est fourni avec la méthode print :
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
Il est temps de passer à l’action. Créez un nouveau fichier Ruby practice.rb et entrez les codes suivants :
Exécutez le code :
|
1 |
ruby practice.rb |
Comme prévu, la commande print affiche les chaînes fournies. Si nous voulons afficher les chaînes sur des lignes distinctes, il est préférable d’utiliser puts à la place. Mettez à jour le code :
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
Ensuite, exécutez à nouveau le code :
|
1 |
ruby practice.rb |
Étape 2 – Variables de chaîne
Les variables sont des noms faisant référence à un emplacement spécifique dans la mémoire de l’ordinateur où une valeur est stockée. Nous pouvons stocker la valeur souhaitée dans la variable et l’utiliser plus tard.
En Ruby, pour déclarer une variable de chaîne, définissez le nom de la variable et attribuez-lui une valeur de chaîne :
|
1 |
<variable_name> = <string> |
Écrivez le code suivant dans practice.rb:
|
1 2 3 4 |
first_half = 'the quick brown fox' second_half = "jumps over the lazy dog" puts first_half puts second_half |
Exécutez le code :
|
1 |
ruby practice.rb |
Ici :
- Nous avons défini deux variables first_half et second_half, chacune ayant reçu une valeur de chaîne.
- La méthode puts affiche la valeur des variables.
Étape 3 – Concaténation de chaînes
En concaténant, nous pouvons prendre plusieurs chaînes et les assembler pour créer une nouvelle chaîne. La concaténation de chaînes est désignée par l’opérateur de concaténation ( +). Notez que ce symbole est également l’opérateur d’addition lors d’opérations arithmétiques.
Essayons de réaliser une concaténation de chaînes sur les chaînes que nous avons déclarées jusqu’à présent :
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Exécutez le code :
|
1 |
ruby practice.rb |
Comme le montre la sortie, la concaténation n’introduit aucun caractère supplémentaire entre les chaînes. C’est pourquoi fox et jumps sont regroupés. Nous pouvons corriger cela en introduisant un espace après fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Exécutez le code :
|
1 |
ruby practice.rb |
Maintenant, le résultat est plus lisible.
La concaténation de chaînes fonctionne également avec des variables. Jetez un œil à l’exemple suivant :
|
1 2 |
first_half = "le renard brun rapide " puts first_half + "saute par-dessus le chien paresseux" |
Exécutez le code :
|
1 |
ruby practice.rb |
L’exemple suivant illustre une longue chaîne de concaténation :
|
1 2 3 |
username = "cloudsigma" fav_color = "bleu" puts "bonjour, " + username + "! votre couleur préférée est " + fav_color + "." |
Exécutez le code :
|
1 |
ruby practice.rb |
Jusqu’à présent, nous n’avons traité que des variables de type chaîne. Et s’il y avait différents types de variables ? Le programme suivant teste ce scénario :
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
En essayant d’exécuter ce programme, Ruby renverra un message d’erreur :
|
1 |
ruby practice.rb |
Cependant, nous pouvons convertir l’entier en chaîne pour éviter ce problème :
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Ici :
-
La méthode to_s convertit la valeur de la variable en chaîne.
La conversion de nombres en chaînes est fréquente lorsqu’on manipule des éléments tels que des codes postaux, des devises, des numéros de téléphone et d’autres données numériques.
Étape 4 – Interpolation de chaînes
Bien que la concaténation de chaînes soit une fonctionnalité puissante, elle peut très facilement devenir délicate. Dans de nombreuses situations, vous constaterez probablement qu’il vous manque un opérateur de concaténation ( +), ce qui cause un gros casse-tête. De plus, lors de la manipulation de différents types de données, celles-ci doivent d’abord être converties en chaîne. Heureusement, Ruby offre d’autres moyens d’injecter des valeurs de variables dans une chaîne en utilisant la fonctionnalité d’interpolation de chaîne.
Voici à quoi cela ressemble. Par exemple, au lieu d’utiliser :
|
1 |
"bonjour, " + username + "!" |
Nous utiliserons :
|
1 |
"bonjour, #{username}!" |
Bien que la syntaxe puisse sembler un peu bizarre, elle simplifie considérablement le code. Pas besoin d’appeler manuellement la méthode to_s pour convertir la valeur de la variable en chaîne.
Utilisons cette nouvelle technique pour mettre à jour notre code précédent :
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "bonjour, #{username}! votre identifiant d’utilisateur est #{user_id}" |
Exécutez le code :
|
1 |
ruby practice.rb |
Étape 5 – Littéraux de chaîne et valeurs de chaîne
Notez que les chaînes déclarées dans les codes sont toujours entourées de guillemets. Cependant, lors de l’affichage de la sortie sur l’écran de la console, il n’y a pas de symboles de citation. Il y a clairement une distinction entre elles.
- Littéral de chaîne: C’est la chaîne écrite dans le code source (y compris les guillemets).
- Valeur de chaîne: C’est la valeur qui est affichée sur la sortie (sans les guillemets).
Par exemple, celui-ci est un littéral de chaîne :
|
1 |
"bonjour le monde" |
Sa valeur de chaîne serait bonjour monde.
Étape 6 – Échapper les guillemets et les apostrophes
Comme nous l’avons démontré, les guillemets et les apostrophes sont utilisés pour désigner des chaînes dans le code source. Cela pose un problème : vous ne pouvez pas les avoir directement dans la chaîne. Sinon, cela causera des problèmes. Le code suivant le démontre :
|
1 |
puts 'c'est ce que c'est' |
Il existe différentes tactiques pour contourner ce problème.
-
Utiliser une syntaxe de chaîne alternative
C’est le moyen le plus simple de contourner le problème. Si votre chaîne a besoin de guillemets simples, utilisez des guillemets doubles dans le littéral de chaîne (et vice-versa).
Corrigeons l’exemple précédent :
|
1 |
puts "c'est ce que c'est" |
Un autre exemple serait :
|
1 |
puts 'il a dit, "bonjour le monde"' |
Cependant, cela ne fonctionnera pas dans toutes les situations. Par exemple :
|
1 |
puts "Clousdigma dit, "Je'suis un garçon heureux!"" |
-
Utiliser des caractères d’échappement
La barre oblique inverse ( \) est souvent appelé le caractère d’échappement. Il empêche Ruby d’interpréter le caractère suivant littéralement. Corrigeons l’exemple précédent. Utilisez la barre oblique inverse pour empêcher Ruby d’interpréter les guillemets doubles internes comme des littéraux :
|
1 |
puts "Cloudsigma dit, \"Je suis un garçon heureux !\"" |
-
Utilisation d'une syntaxe alternative
Jusqu'à présent, nous n'avons travaillé qu'avec des guillemets simples et doubles pour désigner le littéral de chaîne. Cependant, les exemples précédents sont de simples démonstrations de la rapidité avec laquelle la situation peut devenir incontrôlable. Pour résoudre ce problème, nous pouvons abandonner complètement les guillemets et utiliser un symbole totalement différent pour indiquer le début et la fin d'une chaîne.
Jetez un œil à l'exemple suivant :
|
1 |
%$le rapide brun renard a dit, "J'ai sauté par-dessus le chien paresseux"$ |
Ici :
-
- Le symbole % définit le caractère suivant ( $, dans ce cas) comme délimiteur de la chaîne.
- Le littéral de chaîne ici est $le rapide brun renard a dit, "J'ai sauté par-dessus le chien paresseux"$.
Mettons cela en pratique :
|
1 |
puts %$le rapide brun renard a dit, "J'ai sauté par-dessus le chien paresseux"$ |
Ici, la chaîne est essentiellement traitée comme suit :
|
1 |
"le renard brun rapide a dit, \"J'ai sauté par-dessus le chien paresseux\"" |
Cependant, cela réintroduit le problème de l'échappement du délimiteur s'il est utilisé dans la chaîne. Une façon de l'éviter est d'utiliser des symboles qui n'apparaissent généralement pas dans les chaînes. Ces symboles peuvent inclure des accolades, des crochets, etc. :
|
1 |
puts %{"bonjour, le monde !", dit-il} |
Cela fonctionne également parfaitement avec les interpolations de chaînes :
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{bonjour, #{username}.#{user_id}!} |
Il est également courant d'utiliser %Q{} et %q{} pour définir des chaînes dans les programmes Ruby. Ici, %Q{} agit comme des guillemets doubles et %q{} agit comme des guillemets simples.
Étape 7 – Retours à la ligne et chaînes longues
Lorsque vous travaillez avec des chaînes, il y aura des situations où vous voudrez introduire un retour à la ligne ou un retour chariot dans la chaîne. Nous pouvons le faire en introduisant les caractères d'échappement \n (nouvelle ligne) et \r (retour chariot).
Jetez un œil à l'exemple suivant :
|
1 2 |
hello_world = "le renard\nbrun rapide\nsaute par-dessus\nle chien paresseux" puts hello_world |
Le littéral de chaîne semble déroutant, n'est-ce pas ? Réorganisons-le pour une meilleure lisibilité :
|
1 2 3 4 5 6 7 |
hello_world = "le renard\n" + "brun rapide\n" + "saute par-dessus\n" + "le chien paresseux" puts hello_world |
Au lieu de déclarer manuellement les caractères de nouvelle ligne, nous pouvons également utiliser la structure suivante :
|
1 2 3 4 5 6 |
hello_world = "le renard brun rapide saute par-dessus le chien paresseux" puts hello_world |
Dans cette méthode, la chaîne préserve tous les espaces blancs. Cependant, cela gâche la sortie. Supprimez les espaces blancs supplémentaires pour résoudre ce problème :
|
1 2 3 4 5 |
hello_world = "le renard brun rapide saute par-dessus le chien paresseux" |
Bien que le problème d'espace blanc ait été résolu, cela réduit la lisibilité du code. Nous pouvons résoudre ce problème en implémentant un heredoc, un terme pour les littéraux de chaîne multilignes. Le code mis à jour ressemblerait à ceci :
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END le renard brun rapide saute par-dessus le chien paresseux END puts hello_world |
À partir de Ruby v2.3 et versions ultérieures, une autre fonctionnalité est disponible, nommée squiggly heredoc syntax. Elle supprime les espaces blancs de début dans les chaînes. Pour exprimer un squiggly heredoc, remplacez le trait d'union ( -) par un tilde ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END le rapide renard brun saute par-dessus le chien paresseux END puts hello_world |
Étape 8 – Réplication de chaînes
Dans certaines situations, il peut être nécessaire de répéter une chaîne plusieurs fois. Ruby permet de répliquer des chaînes de différentes manières.
L'une de ces techniques consiste à utiliser l'opérateur * . Généralement, il est utilisé comme opérateur de multiplication lorsqu'il s'agit de nombres. Lorsqu'il s'agit de chaînes, cependant, il devient l'opérateur de réplication de chaîne, répétant la chaîne unique autant de fois que nécessaire. Le nombre de répétitions doit être un entier.
Dans l'exemple suivant, le texte Boris va être répété 5 fois :
|
1 |
print "Boris" * 5 + "\n" |
En utilisant cette fonctionnalité, nous pouvons produire des dessins ASCII sympas. Jetez un œil à l'exemple suivant :
|
1 2 3 |
puts "=" * 15 puts "| bonjour le monde |" puts "=" * 15 |
Réflexions finales
Les chaînes de caractères, en programmation, sont essentielles. Ce guide montre comment travailler avec des chaînes en Ruby. Nous avons appris à créer des chaînes et à effectuer diverses opérations comme la concaténation, la gestion des sauts de ligne, des guillemets, etc. En utilisant l'interpolation de chaînes, nous avons également appris à mieux intégrer les valeurs des variables dans les chaînes. En utilisant l'opérateur de réplication de chaîne, nous pouvons également répéter une seule chaîne plusieurs fois.
Bien que Ruby, en soi, soit un excellent langage de programmation, il est souvent combiné avec le framework Rails. Ruby on Rails est un framework d'application web open-source. En savoir plus sur l'installation de Ruby on Rails sur Ubuntu. Cependant, Ruby peut également fonctionner avec d'autres applications, comme MySQL et PostgreSQL.
Bonne programmation !












































Commentaires
Aucun commentaire pour l'instant. Soyez le premier.