Ruby中FizzBuzz挑战:如何为输出整数添加逗号空格后缀?
解决Ruby FizzBuzz变种中的逗号分隔问题
我来帮你搞定这个逗号添加的问题~你现在的核心困扰是直接在循环里逐个输出内容,没法利用数组的join方法来优雅处理分隔符。其实换个思路,先把每个数字对应的结果收集到数组里,最后统一用, 连接输出,就能完美解决这个问题啦!
具体修改思路
- 先初始化一个空数组,用来存储每个数字对应的输出内容(全部转成字符串类型);
- 循环中不再直接
print,而是把每个情况对应的字符串(包括整数转成的字符串)添加到数组里; - 循环结束后,用数组的
join(", ")方法把所有元素连接成一个字符串,再一次性输出——这样所有元素之间会自动加上,,还不会出现末尾多余的逗号。
修改后的完整代码
puts "Enter the maximum amount of numbers" print ">" upper_limit = gets.chomp.to_i results = [] (1..upper_limit).each do |n| if n % 35 == 0 results << "NamaTeam" elsif n % 7 == 0 results << "Team" elsif n % 5 == 0 results << "Nama" else results << n.to_s end end puts results.join(", ")
为什么这个方法可行?
你之前尝试的join和split都是数组/字符串的方法,直接对整数使用当然会报错。现在我们把所有输出内容都统一成字符串并放到数组里,join(", ")就可以轻松帮我们在每个元素之间插入, ,完全不用手动处理每个元素的后缀,既简洁又避免了末尾多余逗号的问题。
内容的提问来源于stack exchange,提问作者gbs0
相关产品推荐
相关产品推荐

