我們使用"%,.2f".formatLocal(locale, value)
。不幸的是value
可以爲空,然後它打印nu。如果value
爲空,我們不希望它打印任何東西。這是否有一個Scala成語?使用Scala格式將空格式化爲空格本地
回答
可能沒有意義的變量的斯卡拉成語是Option
。您可以使用Option.apply
轉換的對象可能是null
到Option
:
Option(3.14f : java.lang.Float) //Some(3.14)
Option(null : java.lang.Float) //None
然後你就可以使用慣用的Option
方法,如foreach
,map
,fold
和getOrElse
了預期的效果:
val myOptionString = myOptionFloat.map("%,.2f".formatLocal(locale, _))
myOptionString.foreach(println) //only print if the Float is not null
val myString = myOptionString.getOrElse("") //empty string if the Float is null
或全部一起打印:
Option(myFloat).foreach(value => println("%,.2f".formatLocal(locale, value))
和存儲:
Option(myFloat).fold("")("%,.2f".formatLocal(locale, _))
謝謝!我喜歡'Option(myFloat).fold(「」)(「%,. 2f」.formatLocal(locale,_))'但我擔心它會混淆我們團隊中的Java程序員,所以我們可能會堅持'if (value == null)「」else「%,. 2f」.formatLocal(locale,value)' – 2015-03-20 17:48:00
當然我明白。你可以試着用'Option(myFloat).map(value =>「%,. 2f」.formatLocal(locale,value))。getOrElse(「」)'來讓Java程序員放心,不使用下劃線語法,並使用'getOrElse'而不是'fold')。一旦他們開始習慣Scala的簡潔和表達的語法,就沒有回頭路了! – 2015-03-20 19:03:31
- 1. 將成本格式化爲本地貨幣格式SQL
- 2. 將c#dateTime格式化爲本地字符串格式
- 3. 將浮動格式化爲具有前導空格的浮動
- 4. 將Django表格格式格式化爲貨幣和%格式
- 5. 將空格放入PHP日期格式
- 6. 使用空格格式化幫助菜單
- 7. 使用Spark/Scala格式化日誌
- 8. 使用NSDateFormatter將日期格式化爲本地日期
- 9. PHPExcel採用空單元格格式
- 10. 用空格格式整數JSF
- 11. textmate重新格式化爲2個空格
- 12. 錯誤的格式化POST URL,因爲參數中的空格
- 13. 基於帶空格的空單元格的Google Spreadsheet條件格式化
- 14. 如何將HH:mm:ss格式化爲CSV格式的時間,Excel會將它們格式化爲普通文本?
- 15. 將Cobol輸出格式化爲表格
- 16. 格式規格顯示空白(空字符串)爲零(0)
- 17. 用空格重新格式化用戶輸入
- 18. 如何將表格格式化爲一個格式?
- 19. 文本文件格式化如何使用vb.net在每行中添加空格
- 20. 如何使用固定寬度格式化文本時保留空格?
- 21. 條件格式不覆蓋手動格式(試圖使單元格爲空)
- 22. 使用FileHelpers將DateTime格式化爲UTC
- 23. 將格式應用於空字符串
- 24. 將NSDate格式化爲DDMMYYYY?
- 25. 將DateTime格式化爲SQL
- 26. 將HTML格式化爲CSV
- 27. 將JSON格式化爲GeoJson
- 28. 使用格式化
- 29. 使用格式化
- 30. 如何在Heroku上用空格格式化環境變量?
斯卡拉往往不會有「空」的特殊處理,因爲有處理Scala中一個特殊的價值(選項等)更好的方式。然而,if(value == null)「」else「%,. 2f」.formatLocal(locale,value)''有什麼問題? – 2015-03-19 11:22:00