我是ruby的新手,但仍然无法解析错误消息。我的方法采用这种形式的字符串: " 8,2,1,6; 3,1,3,2; 6,4,2,7; 7,3,2,4和#34;
我的目标是将每个集合(offset by;)拆分为数组的子数组,并将子数组中的每个值转换为整数。然后,我需要在每个子阵列中打印第二个值。我被困在最后一部分了。这是代码:
@input = "8, 2, 1, 6; 3, 1, 3, 2; 6, 4, 2, 7; 7, 3, 2, 4"
@array = []
def splitter
@input.gsub!(/\s+/, '')
@array = @input.split(';').map { |group| group.split(',') }
@array.map! { |subarray| subarray.map! {|v| v.to_i} }
@array.each { |e| print e(1) }
puts ''
end
splitter
以下是错误消息:
`block in splitter': undefined method `e' for main:Object (NoMethodError)
我想知道我是否没有使用正确的表格来构建数组。
答案 0 :(得分:0)
str = "8, 2, 1, 6; 3, 1, 3, 2; 6, 4, 2, 7; 7, 3, 2, 4"
str.split(';').map { |e| e.split(',').map(&:to_i) }
#⇒ [[8, 2, 1, 6], [3, 1, 3, 2], [6, 4, 2, 7], [7, 3, 2, 4]]