在数组中的字符串上使用.split

时间:2014-02-18 02:48:31

标签: ruby arrays split

输入如12,34,56; 78,91; 50,60;

我想用分号分隔符分割字符串,然后用逗号分隔符分隔字符串

例如:

puts "Input: "
input = gets.chomp
s_array = input.split(";")
for i in 0..s_array.size
    puts s_array[i].split(",")
end

使用puts成功打印但出现错误后

undefined method 'split' for nil:NilClass <NoMethodError>

这个错误的原因是什么?

2 个答案:

答案 0 :(得分:2)

更改..

...
for i in 0...s_array.size

使用..创建范围是包容性的,而...则不是,例如。

1..5  # => 1,2,3,4,5
1...5 # => 1,2,3,4

所以变量i溢出数组,在你的情况下,如果数组大小是5,array_s [5]将是nill。

答案 1 :(得分:2)

更为红润的方法是:

input.split(";").each { |x| puts x.split (",") }

你应该使用Array#each,使用for并不是一件好事,而且很少有需要for循环代替红宝石each的情况for关键字即使在使用时也会委托给each