2011-04-01 84 views
9

我的字符串:分割字符串转换成数字阵列

>> 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" 

这怎么能成为独立的数字像数组:

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

你应该放弃的字符串。写'params [:value]'与这个问题无关,并且是误导性的。 – sawa 2011-04-01 17:00:20

回答

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

串#分裂是你所需要的

12

尝试this

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

请注意,您所要求的不是一个单独数字的数组,而是一串看起来像数字的字符串。正如其他人所指出的,你可以得到与:

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

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

如果你真的想要的数字(整数)的数组,你可以做到这一点,像这样:

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 }