簡體   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