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