Un objeto String contiene y manipula una secuencia arbitraria de caracteres.
Estos son algunos de los métodos:
Puede agregar cadenas juntas; esto a veces se conoce como concatenación .
puts "abc" + "def" #=> "abcdef"
Otro operador para la concatenación:
lang = "Java".concat(" programming").concat(" language") #=> "Java programming language"
Ruby tiene cuatro métodos para el caso de los personajes.
El método de mayúsculas devuelve una copia de la cadena en la que todos los caracteres están en mayúsculas.
"abc".upcase #=> "ABC"
El método de mayúsculas y minúsculas devuelve una copia de la cadena en la que todos los caracteres están en minúsculas.
"DEF".downcase #=> "def"
- ¿Cuáles son algunas de las mejores peleas entre superhéroes en la historia del cómic?
- ¿Dónde están los mejores lugares para buscar vendedores de calidad para su pequeña empresa?
- ¿Cuáles son las mejores formas de obtener más tráfico de referencia con SEO?
- ¿Cuál es el mejor para cualquier negocio en línea: SEO o redes sociales?
- ¿Cuál es el poema en inglés más bello que has leído?
El método de capitalización devuelve una copia de cadena con el primer carácter convertido en mayúsculas y el resto en minúsculas.
"ABCdef".capitalize #=> "Abcdef"
Finalmente, el método swapcase devuelve una copia de la cadena donde las letras mayúsculas se convierten en minúsculas y viceversa.
"Ruby lAnGuage".swapcase #=>"rUBY LaNgUAGE"
El método de longitud devuelve el número de caracteres en la cadena. Será uno de los métodos de cadena más utilizados:
"dog park".length #=> 8
El método inverso devuelve una nueva cadena con los caracteres de la cadena en orden inverso.
"abcdef".reverse #=> "fedcba"
El método chars devuelve una matriz de caracteres en cadena. Esta es una abreviatura de str.each_char.to_a.
"ruby".chars #=> ["r","u","b","y"]
El gsub (patrón, reemplazo) o gsub (patrón) {| match | block} r devuelve una copia de la cadena con todas las apariciones de patrón reemplazadas por el reemplazo o el valor del bloque.
El patrón será típicamente un Regexp; si es una cadena, no se interpretarán metacaracteres de expresiones regulares (es decir, / \ d / coincidirá con un dígito, pero ‘\ d’ coincidirá con una barra diagonal inversa seguida de una ‘d’)
“hola” .gsub (/ [aeiou] /, ‘*’) # => “h * ll *”
“hola” .gsub (/ ([aeiou]) /, ”) # => “h ll ”
‘hello’.gsub (/ [eo] /,’ e ‘=> 3,’ o ‘=>’ * ‘) # => “h3ll *”
“hola” .gsub (/ (? [aeiou]) /, ‘{\ k }’) # => “h {e} ll {o}”
“hola” .gsub (/./) {| s | s.ord.to_s + ”} # => “104 101 108 108 111”
Si el reemplazo es una Cadena, se sustituirá por el texto coincidente. Puede contener referencias a los grupos de captura del patrón de la forma \\ d, donde d es un número de grupo, o \\ k , donde n es un nombre de grupo. Si es una cadena entre comillas dobles, ambas referencias deben ir precedidas de una barra diagonal inversa adicional. Sin embargo, dentro del reemplazo, las variables de coincidencia especiales, como $ &, no se referirán a la coincidencia actual.
Si el segundo argumento es un Hash, y el texto coincidente es una de sus claves, el valor correspondiente es la cadena de reemplazo.
El método de división (patrón = $ ;, [límite]) divide la cadena en subcadenas basadas en un delimitador, devolviendo una matriz de estas subcadenas.
Si el patrón es una Cadena, su contenido se usa como delimitador al dividir la cadena. Si el patrón es un espacio único, la cadena se divide en espacios en blanco, con espacios en blanco iniciales y ejecuciones de caracteres de espacios en blanco contiguos ignorados.
Si el patrón es una expresión regular, str se divide donde coincide el patrón. Siempre que el patrón coincida con una cadena de longitud cero, str se divide en caracteres individuales. Si el patrón contiene grupos, las coincidencias respectivas también se devolverán en la matriz.
Si se omite el patrón, el valor de $; es usado Si $; es nil (que es el valor predeterminado), la cadena se divide en espacios en blanco como si se especificara ”.
Si se omite el parámetro límite, se suprimen los campos nulos finales. Si el límite es un número positivo, como máximo se devolverá ese número de campos (si el límite es 1, toda la cadena se devuelve como la única entrada en una matriz).
Si es negativo, no hay límite para el número de campos devueltos, y los campos nulos finales no se suprimen.
Cuando la cadena de entrada está vacía, se devuelve una matriz vacía, ya que se considera que la cadena no tiene campos para dividir.
“ahora es el momento” .split # => [“ahora”, “el”, “tiempo”]
“ahora es el momento” .split (”) # => [“ahora”, “el”, “tiempo”]
“ahora es el momento” .split (/ /) # => [“”, “ahora”, “”, “el”, “tiempo”]
“1, 2.34,56, 7” .split (% r {, \ s *}) # => [“1”, “2.34”, “56”, “7”]
“hola” .split (//) # => [“h”, “e”, “l”, “l”, “o”]
“hola” .split (//, 3) # => [“h”, “e”, “llo”]
“hola mamá” .split (% r {\ s *}) # => [“h”, “i”, “m”, “o”, “m”]
“amarillo suave” .split (“ello”) # => [“m”, “w y”, “w”]
“1,2,, 3,4 ,,”. Split (‘,’) # => [“1”, “2”, “”, “3”, “4”]
“1,2,, 3,4 ,,”. Split (‘,’, 4) # => [“1”, “2”, “”, “3,4 ,,”]]
“1,2,, 3,4 ,,”. Split (‘,’, -4) # => [“1”, “2”, “”, “3”, “4”, “”, “” ]
“” .split (‘,’, -1) # => []
Típicamente, los métodos con nombres que terminan en “!” Modifican su receptor, mientras que aquellos sin un “!” Devuelven una nueva cadena.