我是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(' ')
,但这也不起作用。
答案 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(' ')
更好。