Retour au blog

Travailler avec les chaînes de caractères en Ruby

Travailler avec les chaînes de caractères en Ruby

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 :

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 :

Pour afficher n’importe quelle sortie sur l’écran de la console, Ruby est fourni avec la méthode print :

Il est temps de passer à l’action. Créez un nouveau fichier Ruby practice.rb et entrez les codes suivants :

Exécutez le code :

Strings in Ruby 1

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 :

Ensuite, exécutez à nouveau le code :

Strings in Ruby 2

É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 :

Écrivez le code suivant dans practice.rb:

Exécutez le code :

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 :

Exécutez le code :

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:

Exécutez le code :

Maintenant, le résultat est plus lisible.

La concaténation de chaînes fonctionne également avec des variables. Jetez un œil à l’exemple suivant :

Strings in Ruby 3

Exécutez le code :

L’exemple suivant illustre une longue chaîne de concaténation :

Strings in Ruby 4

Exécutez le code :

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 :

Strings in Ruby 5

En essayant d’exécuter ce programme, Ruby renverra un message d’erreur :

Cependant, nous pouvons convertir l’entier en chaîne pour éviter ce problème :

Strings in Ruby 6

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 :

Nous utiliserons :

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 :

Strings in Ruby 7

Exécutez le code :

É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 :

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 :

Strings in Ruby 8

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 :

Un autre exemple serait :

Cependant, cela ne fonctionnera pas dans toutes les situations. Par exemple :

  • 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 :

  • 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 :

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 :

Ici, la chaîne est essentiellement traitée comme suit :

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. :

Cela fonctionne également parfaitement avec les interpolations de chaînes :

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 :

Le littéral de chaîne semble déroutant, n'est-ce pas ? Réorganisons-le pour une meilleure lisibilité :

Au lieu de déclarer manuellement les caractères de nouvelle ligne, nous pouvons également utiliser la structure suivante :

Strings in Ruby 8

Strings in Ruby 9

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 :

Strings in Ruby 10

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 :

Strings in Ruby 11

Strings in Ruby 12

À 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 ( ~):

Strings in Ruby 13

É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 :

Strings in Ruby 14

En utilisant cette fonctionnalité, nous pouvons produire des dessins ASCII sympas. Jetez un œil à l'exemple suivant :

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 !

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.