繁体   English   中英

如何在 Ruby 中对数组进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM