Tengo una cuerda
"1,2,3,4"
y me gustaría convertirlo en una matriz:
[1,2,3,4]
¿Cómo?
Tengo una cuerda
"1,2,3,4"
y me gustaría convertirlo en una matriz:
[1,2,3,4]
¿Cómo?
Respuestas:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
O para enteros:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
O para versiones posteriores de ruby (> = 1.9 - como lo señaló Alex):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
String Integer
sin espacio comoString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
con espacio comoString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
sin espacio comoInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
Explicación :
arr
-> cadena que vas a realizar cualquier acción.split()
-> es un método que divide la entrada y la almacena como matriz.''
o ' '
o ','
-> es un valor, que es necesario eliminar de una cadena dada.la forma más sencilla de convertir una cadena que tiene un delimitador como una coma es simplemente usar el método de división
"1,2,3,4".split(',') # "1", "2", "3", "4"]
puedes encontrar más información sobre cómo usar el método de división en los documentos de ruby
Divide str 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, str 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), str 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.
"12345".each_char.map(&:to_i)
each_char
hace básicamente lo mismo que split('')
: divide una cadena en una matriz de sus caracteres.
hmmm, ahora me doy cuenta de que en la pregunta original la cadena contiene comas, por lo que mi respuesta no es realmente útil ;-( ..