以下代码分裂阵列上:地带收集红宝石
str = "1, hello,2"
puts str
arr = str.split(",")
puts arr.inspect
arr.collect { |x| x.strip! }
puts arr.inspect
产生以下结果:
1, hello,2
["1", " hello", "2"]
["1", "hello", "2"]
这被预期。下面的代码:
str = "1, hello,2"
puts str
arr = (str.split(",")).collect { |x| x.strip! }
puts arr.inspect
但是是否产生以下的输出:
1, hello,2
[nil, "hello", nil]
为什么我得到这些 “无”?为什么我不能立即在分割数组上执行.collect?
感谢您的帮助!
对于它的价值,你可以使用正则表达式''1,hello,2“.split(/ \,\ s | \,/)来做同样的事情' – 2012-08-05 17:24:49