[英]How to sort an array in Ruby
Persoane = []
Nume = gets
Persoane.push Nume.split(",")
puts Persoane.sort
我试图让用户输入拆分为子字符串的字符,这些子字符串插入数组中,然后程序将按字母顺序输出字符串。 它似乎不起作用,我只是得到数组的内容,如下所示:
PS C:\Users\Lenovo\Desktop\Ruby> ruby "c:\Users\Lenovo\Desktop\Ruby\ruby-test.rb"
Scrie numele la persoane
Andrei,Codrin,Bradea
Andrei
Codrin
Bradea
PS C:\Users\Lenovo\Desktop\Ruby>
你可以这样做 :
Nume = gets
puts Nume.split(",").sort
或在 1 行
array = gets.chomp.split(",").sort
我不确定你需要在这里使用常量
如果您不需要保留用户输入并在某处使用它,您可以像这样链接方法
persons = gets.chomp.split(",").sort
对于一些不同的东西,我们根本不要分裂。
people = gets.scan(/[^,]+/).map(&:strip).sort
这将避免诸如连续多个逗号产生空字符串的问题。 当然,您也可以通过以下方式避免这种情况:
people = gets.split(/\,+/).map(&:strip).sort
该错误是因为您使用了push
。 假设您通过以下方式定义常量Nume
Nume='Andrei,Codrin,Bradea'
然后, Nume.split(',')
将返回数组['Andrei', 'Codrin', 'Bradea']
。 当您执行Persoane.push
时,整个数组将作为单个元素添加到您的数组Persoane
。 因此, Persoane
仅包含一个元素,您可以在执行
p Persoane
如果你对一个元素数组进行排序,结果也将只是那个元素——没有什么可以排序的。
您可以做的是使用concat
而不是push
。 这将导致Persoane
成为一个可以排序的 3 元素数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.