ruby - 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
解决方案
你可以读到这样的词:
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"]
推荐阅读
- atom-editor - 查找 (2) 换行符并替换为 (1)
- reactjs - 反应导航,路线数据正在抛出“未定义不是对象”
- java - 如何在不使用 replace 方法的情况下替换 Java 中的子字符串?
- python - 随机森林分类,声称非常高的准确性,但它甚至不接近。我究竟做错了什么?
- typescript - 只允许在 Typescript 中使用一些枚举
- sql - 我想保留 SQL Server 表中的最新日期
- php - 为什么 mysqli_connect 不尊重 MYSQLI_OPT_CONNECT_TIMEOUT?
- javascript - Luxon 将 UTC iso 时间转换为特定时区时间(以毫秒为单位)
- python - Python Dataframe:在每个电话号码前附加“0”
- sql - 在插入前触发以将 x 天数添加到日期