Использование команды gets для сортировки массива по алфавиту в Ruby - PullRequest
1 голос
/ 21 апреля 2011

Я - рубиновый нуб и просто пытаюсь использовать команду gets для сортировки массива слов («собака», «кошка», «обезьяна»), которые должны вводиться индивидуально при помощи get и становиться («ape», « кошка "," собака ")

Я пробовал:

list = Object.new
list = []
word = STDIN.gets
list.push(word)
$/ = "END"
puts list

Будет полезна любая помощь, поскольку она поможет моей дочери быстрее выполнить домашнее задание и научиться печатать.

Ответы [ 2 ]

1 голос
/ 21 апреля 2011
list = []
until (word = gets.chomp) == "END"  do
  list << word
end

puts "Sorted Values:"
puts list.sort

Это будет принимать до тех пор, пока вы не дадите ему «END» (вы можете изменить его, как хотите).

Я звоню Array # sort

1 голос
/ 21 апреля 2011

Вы также можете ввести все слова сразу, если хотите:

>> 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, но достаточно простое, чтобы встроить в нужную программу.

...