2016-01-03 3 views
2

Я новичок в рубине и пытался с помощью массивов. Я хочу напечатать массив в одной строке. это блок кода (пожалуйста игнорировать ошибки)Распечатать содержимое массива в 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 

есть в любом случае поставить вывод в одной строке? i.e hello i am beginner to ruby

EDIT: Я даже пытался использовать puts array.join(' '), но это тоже не работает.

+1

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

+0

Я даже пробовал это, но он печатает на новой строке с пространством. –

+1

В строке есть новые строки; вы должны быть 'chomp'ing ввода. –

ответ

5

Прежде всего,

puts array 

должен быть

puts array.join(' ') 

По умолчанию puts выводит каждый элемент в отдельной строке.

Во-вторых,

el=gets.to_s 

должен быть

el = gets.chomp 

gets возвращает строку, поэтому нет особого смысла в преобразовании строки в строку. Но строка, возвращаемая gets, также закончится символом новой строки, поэтому вам нужно будет chomp, что новая линия выключена.

+0

Спасибо! что сработало :) –

1

Вместо puts array попробуйте p array, если вы хотите, чтобы весь массив печатался на экране.

Смежные вопросы