我记得在Java中,我们这样做:
System.getProperty("line.separator")
如何在scala中执行相同的操作?有更好(更容易)的方式吗?
答案 0 :(得分:21)
scala> import util.Properties
import util.Properties
scala> Properties.lineSeparator
res14: java.lang.String =
"
"
答案 1 :(得分:1)
scala.util.Properties.lineSeparator
和 System.lineSeparator
都会做同样的工作。
System.lineSeparator
将直接调用Java方法,该方法必须在系统道具中找到属性:
lineSeparator = props.getProperty("line.separator");
结果如下:
scala> System.lineSeparator
res0: String =
"
"
如果没有找到,它会回退到默认的Java道具。
同样,Properties.lineSeparator
会调用:
def lineSeparator = propOrElse("line.separator", "\n")
最终调用:
System.getProperty(name, alt)
结果是一样的:
scala> scala.util.Properties.lineSeparator
res2: String =
"
"
所以他们都从Java道具中获得行分隔符。唯一的区别是他们如何获得默认值。我不知道为什么它以这种方式实现:)。就像他们不相信Java在这种情况下会有正确的默认值。