在线上

时间:2016-01-03 17:35:16

标签: arrays ruby

我是ruby的新手并且正在尝试使用arrays.i想要以单行打印数组。 这是代码块(请忽略任何错误)

array=[]

puts "Choose an option: ","1.Push, 2.Pop, 3.Display Length"
choice=gets.to_i
while choice!=4
if choice==1
    puts "enter Number of elements to be pushed"
    n=gets.to_i
    n.times do
      puts "Enter element"
    el=gets.to_s
    array.push el
    end
  puts array
elsif choice==2
    puts array.pop

elsif choice==3
    puts array.length

else
  puts "invalid"
end
end

当我在if choice==1打印数组时,我得到不同行的所有输出, 示例

hello
i
am
beginner
to
ruby

无论如何将输出放在一行? 即hello i am beginner to ruby

编辑:我甚至尝试过使用puts array.join(' '),但这也不起作用。

3 个答案:

答案 0 :(得分:8)

首先,

puts array

应该是

puts array.join(' ')

默认情况下,puts会在自己的行上输出每个元素。

其次,

el=gets.to_s

应该是

el = gets.chomp

gets返回一个字符串,因此将字符串转换为字符串并不重要。但gets返回的字符串也会以换行符结尾,因此您需要chomp该换行符关闭。

答案 1 :(得分:1)

如果您希望将整个数组打印到屏幕上,请尝试puts array而不是p array

答案 2 :(得分:0)

Ruby的新手!我刚刚尝试过:

puts "#{array.inspect}"

其中array = [2 3 4 5 6 77 88]。结果是:

["2", "3", "4", "5", "6", "77", "88"]

,这是单行打印输出,如果需要快速修复。但是array.join(' ')更好。