首页 > 解决方案 > Ruby - 我可以从控制台跳过一行输入并从下一行开始读取吗?

问题描述

我正在练习一些关于 HackerRank 的 Ruby 练习,其中一个挑战是根据每个字符索引的值来分隔一个字符串。本质上,偶数索引字符进入一个字符串,奇数字符进入另一个字符串。我已经编写了代码的主要部分,并且我确信它可以工作,但我需要帮助才能从控制台读取输入。

输入如下:

2
Hacker
Rank

输入的第一行是要执行操作的字符串的数量,然后是两个字符串。我看到代码中提供了一条注释,说要从 STDIN 读取输入,但到目前为止我只学会了“获取”。当我尝试使用“gets”时,它只是抓住了“2”的输入行。有没有办法跳过输入的第一行并直接进入第一个字符串?我将在下面提供我的其余代码以防万一有人需要它:

str = gets
puts str 

evens = ""
odds = ""

arr = str.split("")

arr.each.with_index do | letter, indx |
    if indx.even?
        evens += letter
    else
        odds += letter
    end 
end

puts evens + " " + odds

标签: rubyconsole

解决方案


你可以读到这样的词:

puts 'Number of words:'
words = []
number_of_words = gets.to_i
number_of_words.times do |i|
  puts "Word #{i + 1}:"
  words << gets.chomp
end
p words

输出:

Number of words:
2
Word 1:
Hacker
Word 2:
Rank

p words
#~> [Hacker", "Rank"] 

推荐阅读