2016-01-03 63 views
2

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

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(' '),但这也不起作用。

+1

'puts array.join('')' – Doorknob

+0

我甚至试过,但它打印在SPACE的新行上。 –

+1

你的字符串中有换行符;你应该'输入输入。 –

回答

5

首先,

puts array 

应该

puts array.join(' ') 

默认情况下,puts输出自身线上的每个元素。

其次,

el=gets.to_s 

应该

el = gets.chomp 

gets返回一个字符串,所以没有什么意义的字符串转换为字符串。但由gets返回的字符串也将以换行符结束,因此您需要chomp换行符。

+0

谢谢!那工作:) –

1

而不是puts array尝试p array如果你想整个数组打印到屏幕上。