0

这是我返回在数组中只出现一次的元素的代码

a = [1,2,2,3,3,4,5]
p a.select{|i| a.count(i) == 1}
# >> [1, 4, 5]

谁能建议如何将数组作为用户的键盘输入?

4

4 回答 4

1

这是将一定数量的输入收集到数组中的一种非常简洁的方法:

n = 7
a = n.times.collect { gets.chomp.to_i }

然后,您可以在a.

irb(main):022:0> a = n.times.collect{gets.chomp.to_i}
1
2
2
3
3
4
5
=> [1, 2, 2, 3, 3, 4, 5]
irb(main):023:0> a.select{|i| a.count(i) == 1}
=> [1, 4, 5]
于 2013-07-26T01:00:29.010 回答
1
print "Enter an array: "
STDOUT.flush
arr = STDIN.gets.chomp.split(/,/).map(&:to_i)
# Enter an array: 1,2,2,3,3,4,5 <ENTER>
arr # => [1, 2, 2, 3, 3, 4, 5]
于 2013-07-24T21:31:58.940 回答
0

使用该gets方法从标准输入中获取字符串。(它是“get string”的缩写!) chomp删除尾随空格,即在输入结束时按 enter 产生的换行符。

因此,在提示符处调用str = gets.chomp和输入1 2 2 3 3 4 5将设置str"1 2 2 3 3 4 5"。然后,只需使用str.split将其转换为数组。

于 2013-07-24T21:25:18.420 回答
0

下面的方式:

s=gets.chomp
a = s.split("")
于 2013-07-24T18:58:43.543 回答