Ruby如何实现单行输入最多指定N个整数的限制功能
Ruby 限制输入整数数量的实现方案
场景1:输入达到最大数量后自动终止,无需按回车
该实现会实时读取输入流,只要输入的整数个数达到上限就自动停止读取,不需要用户手动按回车结束输入:
max = gets.to_i nums = [] while nums.size < max # 匹配空白分隔符每次读取一个完整的数字 num_str = $stdin.gets(/\s+|\z/).strip break if num_str.empty? nums << num_str.to_i end puts nums.join(' ')
场景2:允许输入整行,仅截断结果保留前N个
如果不需要实时拦截输入,仅要求最终结果不超过最大数量,可以直接对整行输入结果做截断,代码更简洁:
max = gets.to_i nums = gets.chomp.split.map(&:to_i).take(max) puts nums.join(' ')
take(max)方法会直接提取数组的前max个元素,自动忽略超出上限的输入内容。
内容的提问来源于stack exchange,提问作者Dedy Puji
相关产品推荐
相关产品推荐

