【问题标题】:Ruby - Can I skip a line of input from the console and start reading from the next line?Ruby - 我可以从控制台跳过一行输入并从下一行开始读取吗?
【发布时间】:2019-09-23 18:07:26
【问题描述】:

我正在练习一些关于 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

【问题讨论】:

    标签: ruby console


    【解决方案1】:

    你可以这样读:

    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"] 
    

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2014-10-27
      • 2014-05-18
      相关资源
      最近更新 更多