You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby单行双输入:生成字符串与整数两类数组的实现需求

搞定双独立数组的Ruby实现方案

嘿,我明白你的需求了:要通过gets.chomp获取输入,搞出两个完全独立的数组——一个存符号(或者字符串),另一个存整数,还不能用transpose或者zip,怕输出的时候另一个数组被反复反转对吧?

我给你写个完整的实现,完全符合你的要求:

完整代码

# 先把两个数组分开初始化,确保完全独立
names = []
integers = []

# 先问要录入多少条数据
puts "要录入多少组数据呀?"
count = gets.chomp.to_i

# 循环录入每一组的名字和整数
count.times do |i|
  puts "#{i + 1}. 输入名字(比如A、B、C):"
  name = gets.chomp.to_sym  # 要是想存字符串,把.to_sym去掉就行
  names << name

  puts "#{i + 1}. 输入对应的整数:"
  num = gets.chomp.to_i
  integers << num
end

# 测试输出看看效果
puts "\n符号数组的内容:"
names.each { |n| puts n }

puts "\n整数数组的内容:"
integers.each { |num| puts num }

为啥这么写?

  • 完全独立的数组:names和integers从一开始就是分开的,各自存各自的数据,根本不会有什么反转关联的问题,你想单独输出哪个就输出哪个,互不影响。
  • 避开禁用方法:全程没碰transpose或者zip,就是老老实实循环录入,把数据塞进对应的数组里,简单直接。
  • Ruby风格写法:用times循环比原代码的for x in (1..num)更符合Ruby的惯用写法,读起来也更顺。
  • 灵活调整类型:要是你不想存符号,想存普通字符串,把to_sym删掉就行,改起来超方便。

你可以试试运行这段代码,录入几组数据后分别输出两个数组,绝对不会出现你担心的反转问题——毕竟两个数组本来就没绑定在一起嘛!

内容的提问来源于stack exchange,提问作者N.S.Genez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:34:26