回答
這個怎麼樣?
"1,112".delete(',').to_i
更方便一些
"1,1200.00".gsub(/[^0-9]/,'')
它使 「1 200 200」 正常工作藏漢
更好的是''1,1200.00'.gsub(/ [^ 0-9 \。] /,'')。to_f'。 – Hauleth 2012-07-13 08:49:55
等等,你爲什麼要將''1,1200.00'''轉換爲'「1120000」'?你不是隻想替換','(或者,取決於語言環境,'.')嗎?此外,這不會將其轉換爲整數或浮點數,只是不帶分隔符的字符串。 – brymck 2012-07-13 08:53:57
@Bryan:爲了冒險猜測,您可能希望在銀行應用程序中執行此操作,以便在轉換用戶輸入的貨幣金額時僅處理應用程序內部的整數:例如,將美元和美分轉換爲美分。此方法將避免處理浮點數時可能突然出現的任何舍入錯誤。當需要向用戶顯示貨幣金額時,分數可以轉換爲美元和美分。 (雖然這不是提問者詢問的問題。) – 2013-08-06 13:35:34
我會做使用String#tr
:
"1,112".tr(',','').to_i # => 1112
您也可能希望確保您的代碼本地化正確,或確保用戶習慣於「國際」符號。例如,「1,112」實際上是指不同國家的不同號碼。在德國,這意味着這個數字超過了一個,而不是一千個。
對應的維基百科文章是http://en.wikipedia.org/wiki/Decimal_mark。但是,這一次似乎寫得不好。例如,作爲一箇中國人,我不確定這些關於中國千分離器的描述來自何處。
以下是另一種可以工作的方法,雖然與其他一些方法一樣,它會去掉小數位。
a = 1,112
b = a.scan(/\d+/).join().to_i => 1112
如果有人尋找到超過一個逗號SUB OUT,我的粉絲:
"1,200".chars.grep(/\d/).join.to_i
說不上有關性能,但是,它比gsub
更加靈活,即:
"1-200".chars.grep(/\d/).join.to_i
- 1. 將帶逗號的字符串轉換爲Freemarker中的整數
- 2. 如何將整數轉換爲逗號分隔的字符串
- 3. 用逗號將數字字符串轉換爲浮點數
- 4. 將字符串[]轉換爲逗號分隔的字符串。
- 5. 矢量將字符串轉換爲逗號字符串?
- 6. 將逗號分隔字符串轉換爲多個字符串
- 7. 如何將帶位值逗號的數字字符串轉換爲整數?
- 8. 將逗號分隔的字符串轉換爲雙重字符
- 9. 將字符轉換爲載體爲字符串用引號和逗號
- 10. 如何將逗號分隔的字符串轉換爲整數數組?
- 11. 將逗號分隔的字符串轉換爲Postgres中的整數數組
- 12. 轉換整數列表轉換爲字符串只有一個逗號在Python
- 13. 如何將數組轉換爲逗號分隔的字符串?
- 14. 如何將逗號分隔的字符串轉換爲數組?
- 15. 將浮點數轉換爲逗號和點的字符串
- 16. 將一整列整數轉換爲字符串,並使用逗號分隔數千個字符
- 17. 轉換ArrayList的內容轉換爲字符串用逗號
- 18. 如何將由逗號分隔的字符串值轉換爲mySQL的整數
- 19. 使用逗號將int列表轉換爲字符串SQL Server
- 20. 字符串流將unsigned long轉換格式的數字字符串用逗號
- 21. C++用破折號將字符串轉換爲整數
- 22. 轉換逗號分隔的字符串列表,以整數
- 23. JavaScript將字符串轉換爲文字逗號列表
- 24. 將字符串轉換爲整數
- 25. Swift:將字符串轉換爲整數
- 26. 將字符串轉換爲整數
- 27. 將字符串轉換爲整數
- 28. 將字符串轉換爲整數
- 29. 將字符串轉換爲整數?
- 30. 將字符串轉換爲整數
感謝您的回答。這比我的好多了。實際上,我希望有一個電話而不是兩個電話。如:「1,112」.to_money。在回顧了答案之後,很可能沒有這樣的方法。無論如何,非常感謝! – mCY 2012-07-16 08:55:39
@michealKohi你能告訴我爲什麼delete()比在接受正則表達式的gsub中做得更快,我一直認爲正則表達式的速度更快。我對Benchmark的執行時間有很大的區別。 – Abhinay 2014-08-29 11:15:51
@Abhinay關於你的基準測試:樣本量?字符串大小? – 2014-09-19 18:36:12