输入如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>
这个错误的原因是什么?
答案 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
。