Ruby中的数组迭代

时间:2014-11-10 03:12:12

标签: ruby

我试图在Ruby中迭代一个数组。我使用each方法但收到以下错误消息:NoMethodError: undefined method ``each' for "1, 2":String

我正在使用jruby-1.6.7。不确定这是不是问题。

以下是代码:

#!/usr/bin/ruby

puts "Select one of these.\n1. ABC\n2. DEF\n3. GHI\n"

schemas = gets.chomp

len = schemas.size

puts schemas.split(",")

puts schemas[0..len]

schemas.each {|x| puts x}

我需要一些指导,在Ruby中迭代一个简单的数组?

感谢。

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上:

schemas = gets.chomp
# => "1, 2"

# save the result of split into an array
arr = schemas.split(",")
# => [1, 2]

# loop the array
arr.each { |schema| puts schema }
# => 1
# => 2

您也可以在一行中执行此操作,但阵列不会保存在任何位置。

schemas = gets.chomp
schemas.split(",").each { |schema| puts schema }
# => 1
# => 2

答案 1 :(得分:0)

您有正确的想法,但是您在 String 上调用Array#each方法。

schemas = gets.chomp
puts schemas.split(",")

String#split方法将字符串转换为数组是正确的,但是您实际上从未实际转换过数据类型。 schemas仍被识别为字符串。

你能做的是

schemas = schemas.split(",")

然后

schemas.each{|x| puts x}