數組英語句子般的名單是否有一個Ruby/Rails的「神奇」的幫手,從字的數組中去,像紅寶石 - 從文字
["Sugar", "Water", "Lemons", "Tea"]
到可以適合在一個字符串句子:
"Sugar, Water, Lemons and Tea"
我知道array.join()
,但最後一項之前的「and」很重要。
我只是問,因爲我知道,Ruby和Rails有很多有用的方法,潛伏在黑暗中,我想保持我的代碼儘可能乾淨
數組英語句子般的名單是否有一個Ruby/Rails的「神奇」的幫手,從字的數組中去,像紅寶石 - 從文字
["Sugar", "Water", "Lemons", "Tea"]
到可以適合在一個字符串句子:
"Sugar, Water, Lemons and Tea"
我知道array.join()
,但最後一項之前的「and」很重要。
我只是問,因爲我知道,Ruby和Rails有很多有用的方法,潛伏在黑暗中,我想保持我的代碼儘可能乾淨
好像這是你在找什麼:)
http://apidock.com/rails/Array/to_sentence
to_sentence(options = {})
「的陣列,其中的最後一個元素是由連接器連接的字以逗號分隔的句子轉換」。
例子:
["Sugar", "Water", "Lemons", "Tea"].to_sentence # => "Sugar, Water, Lemons, and Tea"
您還可以通過選擇,像什麼應該是你的最後一個字連接器:
["Sugar", "Water", "Lemons", "Tea"].to_sentence(last_word_connector: ' or ') # => "Sugar, Water, Lemons or Tea"
編輯:
正如馬克斯指出,威廉姆斯,這將默認在最後一個字旁邊留下一個逗號。爲了避免這種情況,你可以顯式聲明" and "
爲您的最後一個字接口,爲默認似乎是", and "
["Sugar", "Water", "Lemons", "Tea"].to_sentence(last_word_connector: ' and ') # => "Sugar, Water, Lemons and Tea"
試試這個
pry(main)> ["Sugar", "Water", "Lemons", "Tea"].to_sentence
=> "Sugar, Water, Lemons, and Tea"
或
pry(main)> ["Sugar", "Water", "Lemons", "Tea"].to_sentence(words_connector: ', ', last_word_connector: ' and ')
=> "Sugar, Water, Lemons and Tea"
你可以仍然使用連接,分別做最後一個元素。
def commas_with_and(arr)
arr[0..-2].join(", ") << " and " << arr[-1]
end
arr = ["Sugar", "Water", "Lemons", "Tea"]
commas_with_and(arr)
>> "Sugar, Water, Lemons and Tea"
如果你提供一個例子,它會很好。 – Santhosh
在「和」之前加上一個額外的逗號,所以不是他所要求的。這是臭名昭着的「牛津逗號」,「吸血鬼週末」並沒有提供任何關於它的信息。 :) –
明白我的意思! Ruby只是加載了這些神祕的方法。謝謝@rorofromfrance –