Использование команды gets для сортировки массива по алфавиту в Ruby
Я нубистка из Ruby, и я просто пытаюсь использовать команду gets для сортировки массива слов ("собака", "кошка", "обезьяна"), которые должны вводиться индивидуально с помощью gets и становиться ("ape", "cat", "собака")
Я пытался:
list = Object.new
list = []
word = STDIN.gets
list.push(word)
$/ = "END"
puts list
Любая помощь будет очень полезна, так как она поможет моей дочери быстрее разобраться с домашней работой и научиться печатать.
2 ответа
Решение
Вы также можете ввести все слова сразу, если хотите:
>> words = gets.chomp.split(/,\s*/).sort
dog, cat,ape #=> ["ape", "cat", "dog"]
Если вы хотите прочитать их по отдельности:
>> words = [] #=> []
>> until (word = gets.chomp).empty? do
.. words << word
.. end
cat
ape
dog
#=> nil
>> words.sort #=> ["ape", "cat", "dog"]
Это просто копирование / вставка из IRB, но достаточно простое, чтобы встроить в нужную программу.
list = []
until (word = gets.chomp) == "END" do
list << word
end
puts "Sorted Values:"
puts list.sort
Это будет принимать до тех пор, пока вы не дадите ему "END" (вы можете изменить это по своему желанию).
Я звоню Array#sort