2011-04-01 18 views
9

Mi cadena:dividir una cadena en una matriz de números

>> pp params[:value] 
"07016,07023,07027,07033,07036,07060,07062,07063,07065,07066,07076,07081,07083,07088,07090,07092,07201,07202,07203,07204,07205,07206,07208,07901,07922,07974,08812,07061,07091,07207,07902" 

¿Cómo puede convertirse en un conjunto de números distintos como:

["07016", "07023", "07033" ... ] 
+0

Usted sólo debe dar a la cadena. Escribir 'params [: value]' es irrelevante para la pregunta y es engañoso. – sawa

Respuesta

33
result = params[:value].split(/,/) 

Cadena # división es lo que necesita

12

Probar this:

arr = "07016,07023,07027".split(",") 
6

Tenga en cuenta que lo que pide no es una matriz de números separados, sino una matriz de cadenas que parecen números. Como han dicho otros, usted puede conseguir eso con:

arr = params[:value].split(',') 

# Alternatively, assuming integers only 
arr = params[:value].scan(/\d+/) 

Si realmente querían una serie de números (enteros), puede hacerlo de esta manera:

arr = params[:value].split(',').map{ |s| s.to_i } 

# Or, for Ruby 1.8.7+ 
arr = params[:value].split(',').map(&:to_i) 

# Silly alternative 
arr = []; params[:value].scan(/\d+/){ |s| arr << s.to_i } 
Cuestiones relacionadas