从控制台获取整数数组

时间:2015-08-05 19:04:38

标签: ruby

我试图从控制台用户输入中获取一个整数数组。我认为我需要使用的函数是获取,但现在我记得这个函数将采用字符串,而不是数组。有人可以帮助我如何将此字符串转换为数组?以下是我到目前为止所做的尝试:

df2 <- lapply(split(df, df$id),fonct)

预期投入:[1,2,3,4]

4 个答案:

答案 0 :(得分:1)

你总是可以评估它,但是很危险......

order by
他们可以做这样的事吗..

>> foo = "[0,5,3,2,20,10]"
=> "[0,5,3,2,20,10]"
>> a = eval foo
=> [0, 5, 3, 2, 20, 10]
>> a
=> [0, 5, 3, 2, 20, 10]
>> a.class
=> Array
>>

或更糟

答案 1 :(得分:1)

您的输入格式似乎是JSONYAML,因此您只需使用JSON parserYAML parser解析它:

require 'json'

a = JSON.parse(gets) # [1, 2, 3, 4]
# => [1, 2, 3, 4]

答案 2 :(得分:0)

这是一个人为的例子,它采用用户输入的一位数整数字符串,通过String::split方法创建一个数组,并将每个元素从字符串转换为整数:

puts "Enter array: "              # enter this string: 1234
str = gets.chomp
puts str.class                    #=> String
arr = str.split(//).map(&:to_i)
puts arr.class                    #=> Array
puts arr.size                     #=> 4
puts arr.inspect                  #=> [1, 2, 3, 4]

这远不是一个完整的解决方案(即假设字符串中没有分隔符,只适用于单位数整数等),但它演示了基本概念。

答案 3 :(得分:0)

print "Enter array: "
a = gets.chomp
a.gsub!(/\[|\]/, "").split(',').map(&:to_i)
my_function(a)

在您的示例中,您正在执行a = ...两次。第一个赋值被第二个赋值覆盖,因此第一个赋值是什么都不做。你知道吗。

我在第三行所做的是将字符串"[1,2,3,4]"变为整数数组。

来源: http://ruby-doc.org/core-2.2.0/String.html#method-i-split

http://ruby-doc.org/core-2.2.0/String.html#method-i-gsub-21

http://ruby-doc.org/core-2.2.0/Array.html#method-i-map