如何在ruby中拆分单行输入并将其存储为不同的变量和不同的数据类型(即Integer / String / Array)

时间:2016-11-21 07:39:07

标签: arrays ruby string input split

如何将单行输入拆分为不同数据类型的多个变量。

实施例

3 2 3 1  

样本输出

n = 3               #Integer/FixNum
a = [2,3,1]         #Array

更具体地说,我需要

动态获得a(输入)的3(n)次

ip -> 5 1 3 4 5 6
op -> n = 5 and a = [1,3,4,5,6]

ip -> 7 1 2 3 4 5 6 7
op -> n = 7 and a = [1,2,3,4,5,6,7]

我尝试了什么

a,b = gets.split(" ").map(&:to_i)  #it didn't not work

op -> a = 1, b = 2

2 个答案:

答案 0 :(得分:3)

您可以使用splat运算符:

array = gets.split.map(&:to_i)
#=> [7, 1, 2, 3, 4, 5, 6, 7]
a, *b = array # <===== magic happens here
a #=> 7
b #=> [1, 2, 3, 4, 5, 6, 7]

答案 1 :(得分:2)

b = gets.chomp.split(" ").map(&:to_i)
# => [7, 1, 2, 3, 4, 5, 6, 7]
a = b.shift
# => 7
b
# => [1, 2, 3, 4, 5, 6, 7]