Ruby中是否有內置的方法來支持它?如何在Ruby中將1轉換爲「first」,2轉換爲「second」等等?
15
A
回答
6
Linguistics怎麼樣?它不是內置的。如果你想建於,你必須將它設置使用哈希值等。 見here也爲例子
15
這不回答你的問題準確,並且不會在Ruby的工作,但如果你是在Rails的,您可以使用ordinalize
將1
轉換爲1st
,2
至2nd
,依此類推。
例子:
1.ordinalize # => "1st"
2.ordinalize # => "2nd"
3.ordinalize # => "3rd"
...
9.ordinalize # => "9th"
...
1000.ordinalize # => "1000th"
如果你想在大量逗號:
number_with_delimiter(1000, :delimiter => ',') + 1000.ordinal # => "1,000th"
+3
這隻適用於Rails。 – Raf 2015-02-17 05:34:38
5
我想有 「第一,第二,第三」,而不是「第一,第二的ordinalize方法, 3rd' - 所以這裏有一小段代碼可以運行10次(如果找不到它,可以退回到Rails的序列化)。
class TextOrdinalize
def initialize(value)
@value = value
end
def text_ordinalize
ordinalize_mapping[@value] || @value.ordinalize
end
private
def ordinalize_mapping
[nil, "first", "second", "third", "fourth", "fifth", "sixth", "seventh",
"eighth", "ninth", "tenth" ]
end
end
下面是它如何工作的:
TextOrdinalize.new(1).text_ordinalize #=> 'first'
TextOrdinalize.new(2).text_ordinalize #=> 'second'
TextOrdinalize.new(0).text_ordinalize #=> '0st'
TextOrdinalize.new(100).text_ordinalize #=> '100th'
+0
您可以在'#ordinalize_mapping'中使用「零」而不是'nil' – 2017-11-08 11:31:29
0
使用人性化的寶石,可能是最簡單的方法。但是,是的,它不是內置的,但它只有一個依賴,所以我認爲它是一個不錯的選擇。
require 'humanize'
2.humanize => "two"
相關問題
- 1. 數字格式:如何將1轉換爲「01」,2轉換爲「02」等?
- 2. 將curl轉換爲ruby等效
- 3. 如何在C++中將0x70,0x61,0x73 ...等轉換爲Pas ...等等?
- 4. 將等式轉換爲C++
- 5. 將1列轉換爲2
- 6. 轉換爲多等
- 7. 如何將2k,1m,1g等轉換爲2000,1000000等
- 8. 在Ruby中將{:one,1,:two,2]轉換爲{:one => 1,:two => 2}
- 9. 算法將1轉換爲「一」等在objective-c
- 10. 將GUID轉換爲等價數字
- 11. 將.e轉換爲e等.net c#
- 12. 將SQL轉換爲等效LINQ
- 13. 將webpack.config.js從1.x轉換爲2.x
- 14. 如何將Java中的SHA函數轉換爲Ruby中的等效函數?
- 15. 將第1列轉換爲標題,將第2列轉換爲行
- 16. 將Javascript轉換爲Ruby
- 17. 將php轉換爲ruby
- 18. Ruby:將proc轉換爲lambda?
- 19. 將curl轉換爲ruby
- 20. 將-1轉換爲uint C#
- 21. 將DevExpress.Xpo.XPCollection`1轉換爲DevExpress.Xpo.XPCollection
- 22. 如何使用ffmpeg將vob轉換爲wmv以中等質量?
- 23. 有沒有辦法在mysql中將2轉換爲秒,3轉換爲第三等(僅限SQL)
- 24. 如何將十進制(c#)轉換爲INTERVAL DAY TO SECOND(oracle)?
- 25. .NET將數字轉換爲字符串表示形式(1對1,2對2等)
- 26. 如何將1 - 1000轉換爲單詞?
- 27. 在Ruby中將YAML轉換爲XML?
- 28. 在Ruby中將HTML轉換爲Textile?
- 29. 將int [2]轉換爲long
- 30. 將Lambert 2轉換爲WSG84
哇,這個類已被移植到PHP ..?很好,+1 – dmp 2010-10-15 10:26:35
對我很好。謝謝 – Yen 2010-10-18 01:37:52
我認爲「第一個」是縱座標方法,「1st」是順序方法 – rogerdpack 2011-09-01 23:40:25