【问题标题】:How to get the line separator of current os easily in Scala?如何在Scala中轻松获取当前操作系统的行分隔符?
【发布时间】:2012-02-10 15:34:56
【问题描述】:

我记得在 Java 中,我们是这样做的:

System.getProperty("line.separator")

如何在 scala 中做同样的事情?有没有更好(更简单)的方法?

【问题讨论】:

    标签: scala newline


    【解决方案1】:
    scala> import util.Properties
    import util.Properties
    
    scala> Properties.lineSeparator
    res14: java.lang.String =
    "
    "
    

    【讨论】:

      【解决方案2】:

      scala.util.Properties.lineSeparatorSystem.lineSeparator 都会做同样的工作。

      System.lineSeparator 会直接调用需要在系统 props 中查找属性的 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 在这种情况下会有正确的默认值。

      【讨论】:

        猜你喜欢
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        • 2016-02-01
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 2018-03-14
        相关资源
        最近更新 更多