我们使用"%,.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. 如何将给定的xml格式化为单行(无空格)
- 4. 将浮动格式化为具有前导空格的浮动
- 5. 如何在[null]格式为空时格式化?
- 6. 将Django表格格式格式化为货币和%格式
- 7. 将日期格式化为mysql格式
- 8. 将空格放入PHP日期格式
- 9. 使用time.Format时的本地化格式
- 10. 将不同日期格式格式化为标准格式
- 11. 将英文格式的代码格式化为日期格式
- 12. 使用C中的空格格式化输出
- 13. Python - 使用不同数量的空格格式化输出
- 14. 使用空格格式化帮助菜单
- 15. 如何将scala的输出格式从JSON格式化为文本文件格式
- 16. 使用Spark/Scala格式化日志
- 17. 格式化文本与制表符或空格
- 18. intellij想法scala格式化
- 19. 使用NSDateFormatter将日期格式化为本地日期
- 20. PHPExcel采用空单元格格式
- 21. 用空格格式整数JSF
- 22. 将位标志格式化为ng格形式的文本值
- 23. 错误的格式化POST URL,因为参数中的空格
- 24. textmate重新格式化为2个空格
- 25. R格式化格式化
- 26. 如何将HH:mm:ss格式化为CSV格式的时间,Excel会将它们格式化为普通文本?
- 27. 用合适的空行将矩阵格式化为txt文件
- 28. 基于带空格的空单元格的Google Spreadsheet条件格式化
- 29. 如何在Django中格式化日期时使用本地化的“短格式”?
- 30. 将UITextField格式化为价格(XXX,XXX.XX)
斯卡拉往往不会有“空”的特殊处理,因为有处理Scala中一个特殊的价值(选项等)更好的方式。然而,if(value == null)“”else“%,. 2f”.formatLocal(locale,value)''有什么问题? – 2015-03-19 11:22:00