这是我的代码,用于返回存在的元素 在数组中只有一次
a = [1,2,2,3,3,4,5]
p a.select{|i| a.count(i) == 1}
# >> [1, 4, 5]
任何人都可以建议如何将数组作为用户的键盘输入??
答案 0 :(得分: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]
答案 1 :(得分:0)
下面的方式:
s=gets.chomp
a = s.split("")
答案 2 :(得分:0)
使用gets
方法从标准输入中获取字符串。 (这是“获取字符串”的缩写!)
chomp
删除尾随空格,即在输入结尾处按Enter键产生的换行符。
因此,在提示符处调用str = gets.chomp
并输入1 2 2 3 3 4 5
会将str
设置为"1 2 2 3 3 4 5"
。然后,只需使用str.split
将其转换为数组。
答案 3 :(得分:0)
这是一个非常简洁的方法,可以将一定数量的输入收集到数组中:
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]