Volver al blog

Trabajando con cadenas en Ruby

Trabajando con cadenas en Ruby

Ruby es un lenguaje de programación interpretado, dinámico, reflexivo y orientado a objetos. Desarrollado por Yukihiro Matsumoto, Ruby se centra en la simplicidad y la productividad. Su elegante sintaxis permite a los desarrolladores leer y escribir código más fácilmente.

En esta guía, trabajaremos con cadenas en Ruby.

Requisitos previos

Para realizar los pasos demostrados en este tutorial, necesita los siguientes componentes:

El tipo de datos String

En programación, una cadena es un tipo de datos común que admite todos los lenguajes de programación modernos. Se caracteriza por una secuencia de caracteres. Toda la secuencia de caracteres se trata como una sola pieza de datos. Una cadena puede contener letras, dígitos y caracteres/símbolos especiales.

Ruby, al ser un lenguaje de programación puramente orientado a objetos, trata las cadenas como objetos. A diferencia de muchos otros lenguajes, las cadenas en Ruby son mutables. Básicamente, el valor de la cadena se puede cambiar in situ.

Paso 1 – Creación e impresión de cadenas

En Ruby, las cadenas están envueltas por comillas simples ( ') o comillas dobles ( "). Las siguientes son dos cadenas válidas en Ruby:

Para imprimir cualquier salida en la pantalla de la consola, Ruby viene con el print método:

Es hora de ponerlo en acción. Cree un nuevo archivo de Ruby practice.rb e introduzca los siguientes códigos:

Run the code:

Strings in Ruby 1

Como era de esperar, el comando print imprime las cadenas proporcionadas. Si queremos imprimir las cadenas en líneas separadas, es mejor usar puts en su lugar. Actualice el código:

A continuación, vuelva a ejecutar el código:

Strings in Ruby 2

Paso 2 – Variables de cadena

Las variables son nombres que hacen referencia a un lugar específico en la memoria de la computadora donde se almacena un valor. Podemos almacenar el valor deseado en la variable y usarlo más tarde.

En Ruby, para declarar una variable de cadena, defina el nombre de la variable y asigne un valor de cadena:

Escriba el siguiente código en practice.rb:

Run the code:

Aquí:

  • Hemos definido dos variables first_half y second_half, cada una con un valor de cadena asignado.
  • El método puts imprime el valor de las variables.

Paso 3 – Concatenación de cadenas

Al concatenar, podemos tomar varias cadenas y unirlas para crear una nueva cadena. La concatenación de cadenas se denota mediante el operador de concatenación ( +). Tenga en cuenta que este símbolo también es el operador de suma cuando se trabaja con operaciones aritméticas.

Intentemos realizar la concatenación de cadenas en las cadenas que hemos declarado hasta ahora:

Run the code:

Como muestra la salida, la concatenación no introduce ningún carácter adicional entre las cadenas. Es por eso que fox y jumps están agrupados. Podemos solucionarlo introduciendo un espacio en blanco después de fox:

Run the code:

Ahora la salida se ve mejor.

La concatenación de cadenas también funciona con variables. Eche un vistazo al siguiente ejemplo:

Strings in Ruby 3

Ejecuta el código:

El siguiente ejemplo demuestra una larga cadena de concatenación:

Strings in Ruby 4

Ejecuta el código:

Hasta ahora, solo hemos tratado con variables de cadena. ¿Qué pasaría si hubiera diferentes tipos de variables? El siguiente programa prueba este escenario:

Strings in Ruby 5

Al intentar ejecutar este programa, Ruby arrojará un mensaje de error:

Sin embargo, podemos convertir el entero a una cadena para evitar este problema:

Strings in Ruby 6

Aquí:

  • El método to_s convierte el valor de la variable en una cadena.

Convertir números a cadenas es algo común cuando se trata con elementos como códigos postales, monedas, números de teléfono y otros datos numéricos.

Paso 4 – Interpolación de cadenas

Aunque la concatenación de cadenas es una característica potente, puede volverse complicada muy fácilmente. En muchas situaciones, probablemente te encuentres con que te falta un operador de concatenación ( +), lo que provoca un gran dolor de cabeza. Además, al tratar con diferentes tipos de datos, primero deben convertirse a una cadena. Afortunadamente, Ruby ofrece otras formas de inyectar valores de variables en una cadena utilizando la función interpolación de cadenas.

Así es como se ve. Por ejemplo, en lugar de usar:

Estaremos usando:

Aunque la sintaxis puede parecer un poco extraña, simplifica drásticamente el código. No es necesario llamar manualmente al to_s método para convertir el valor de la variable a cadena.

Usemos esta nueva técnica para actualizar nuestro código anterior:

Strings in Ruby 7

Ejecuta el código:

Paso 5 – Literales de cadena y valores de cadena

Ten en cuenta que las cadenas declaradas en los códigos siempre están rodeadas por comillas. Sin embargo, al imprimir la salida en la pantalla de la consola, no hay símbolos de comillas. Claramente hay una distinción entre ellos.

  • Literal de cadena: Es la cadena escrita en el código fuente (incluyendo las comillas).
  • Valor de cadena: Es el valor que se imprime en la salida (sin las comillas).

Por ejemplo, el siguiente es un literal de cadena:

El valor de cadena del mismo sería hello world.

Paso 6 – Escapar comillas y apóstrofes

Como demostramos, las comillas y los apóstrofes se utilizan para denotar cadenas en el código fuente. Esto plantea un problema: no puedes tenerlos directamente en la cadena. De lo contrario, causará problemas. El siguiente código demuestra esto:

Strings in Ruby 8

Existen diferentes tácticas para evitar este problema.

  • Uso de sintaxis de cadena alternativa

Esta es la forma más sencilla de evitar el problema. Si tu cadena necesita comillas simples, usa comillas dobles en el literal de cadena (y viceversa).

Corrijamos el ejemplo anterior:

Otro ejemplo sería:

Sin embargo, no va a funcionar en todas las situaciones. Por ejemplo:

  • Uso de caracteres de escape

La barra invertida ( \) se conoce a menudo como el carácter de escape. Evita que Ruby interprete el siguiente carácter literalmente. Corrijamos el ejemplo anterior. Usa la barra invertida para evitar que Ruby interprete las comillas dobles internas como literales:

  • Uso de sintaxis alternativa

Hasta ahora, solo hemos estado trabajando con comillas simples y dobles para denotar el literal de cadena. Sin embargo, los ejemplos anteriores son demostraciones simples de cómo esto puede salirse de control muy rápidamente. Para resolver este problema, podemos deshacernos por completo de las comillas y usar un símbolo completamente diferente para denotar el inicio y el final de una cadena.

Eche un vistazo al siguiente ejemplo:

Aquí:

    • El símbolo % define el siguiente carácter ( $, en este caso) como el delimitador de la cadena.
    • El literal de cadena aquí es $el rápido marrón zorro dijo, "salté sobre el perro perezoso"$.

Pongámoslo en acción:

Aquí, la cadena se trata básicamente como lo siguiente:

Sin embargo, vuelve a introducir el problema de escapar el delimitador si se utiliza en la cadena. Una forma de evitarlo es usar símbolos que generalmente no aparecen en las cadenas. Dichos símbolos podrían incluir llaves, corchetes, etc.:

También funciona perfectamente con interpolaciones de cadenas:

También es común usar %Q{} y %q{} para definir cadenas en programas de Ruby. Aquí, %Q{} actúa como comillas dobles y %q{} actúa como comillas simples.

Paso 7 – Saltos de línea y cadenas largas

Al trabajar con cadenas, habrá situaciones en las que querrá introducir un salto de línea o un retorno de carro en la cadena. Podemos hacerlo introduciendo los caracteres de escape \n (salto de línea) y \r (retorno de carro).

Eche un vistazo al siguiente ejemplo:

El literal de cadena parece confuso, ¿verdad? Reorganicémoslo para una mejor legibilidad:

En lugar de declarar manualmente los caracteres de salto de línea, también podemos usar la siguiente estructura:

Strings in Ruby 8

Strings in Ruby 9

En este método, la cadena conserva todos los espacios en blanco. Sin embargo, esto estropea la salida. Elimine los espacios en blanco adicionales para solucionarlo:

Strings in Ruby 10

Aunque se solucionó el problema del espacio en blanco, esto reduce la legibilidad del código. Podemos solucionar este problema implementando un heredoc, un término para literales de cadena de varias líneas. El código actualizado se vería así:

Strings in Ruby 11

Strings in Ruby 12

A partir de Ruby v2.3 y versiones superiores, hay otra característica disponible, llamada la sintaxis squiggly heredoc. Esta elimina el espacio en blanco inicial en las cadenas. Para expresar un squiggly heredoc, reemplace el guion ( -) con una virgulilla ( ~):

Strings in Ruby 13

Paso 8 – Replicar cadenas

En algunas situaciones, puede ser necesario repetir una cadena varias veces. Ruby permite replicar cadenas de varias formas.

Una de estas técnicas es usar el * operador. Generalmente, se utiliza como el operador de multiplicación cuando se trata de números. Sin embargo, cuando se trata de cadenas, se convierte en el operador de replicación de cadenas, repitiendo la cadena individual tantas veces como sea necesario. El número de repeticiones debe ser un entero.

En el siguiente ejemplo, el texto Boris se va a repetir 5 veces:

Strings in Ruby 14

Usando esta característica, podemos producir un arte ASCII genial. Echa un vistazo al siguiente ejemplo:

Reflexiones finales

Las cadenas, en programación, son esenciales. Esta guía demuestra cómo trabajar con cadenas en Ruby. Aprendimos a crear cadenas y a realizar diversas operaciones como la concatenación, el manejo de nuevas líneas, comillas, etc. Usando la interpolación de cadenas, también aprendimos a integrar mejor los valores de las variables en las cadenas. Usando el operador de replicación de cadenas, también podemos repetir una sola cadena varias veces.

Aunque Ruby, por sí mismo, es un excelente lenguaje de programación, a menudo se combina con el framework Rails. Ruby on Rails es un framework de aplicaciones web de código abierto. Obtenga más información sobre cómo instalar Ruby on Rails en Ubuntu. Sin embargo, Ruby también puede funcionar con otras aplicaciones, como MySQL y PostgreSQL.

¡Feliz programación!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.