2016-01-03 99 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如果你想整個數組打印到屏幕上。