【问题标题】:What is the best way to format a string in Scala?在 Scala 中格式化字符串的最佳方法是什么?
【发布时间】:2010-10-25 17:09:46
【问题描述】:

我想知道在 Scala 中格式化字符串的最佳方式是什么。我正在为一个类重新实现 toString 方法,它是一个相当长且复杂的字符串。我考虑过使用 String.format,但 Scala 似乎有问题。是否有用于执行此操作的原生 Scala 函数?

【问题讨论】:

    标签: java string scala


    【解决方案1】:

    我只是用错了。正确用法是 .format(parem1, parem2)。

    【讨论】:

    • RichString 中有一个东西可以让你在这里做一些更好的事情;而你只使用 Java API: String.format( "%s has %d bunnies", name, bunnyCount ) 你可以执行以下操作: "%s has %d bunnies".format( name, bunnyCount ) 甚至使用它作为运算符:“%s has %d bunnies”格式(名称,bunnyCount)
    【解决方案2】:

    好老的java.text.MessageFormat怎么样?

    【讨论】:

      【解决方案3】:

      String#format 需要注意的是它实际上是使用反射实现的(从 v2.7.4 开始)。它委托给 Java API,但反射给相对较小的方法调用增加了相当大的开销。出于性能原因,您可能需要考虑 Java 样式的字符串连接。据我了解,Scala 2.8.0 版应该可以解决这个问题。

      【讨论】:

      • 曾经滑稽的过于复杂的格式现在只有: def format(args : Any*) : String = java.lang.String.format(self, args.toArray[Any].asInstanceOf[Array[AnyRef ]]: _*)
      • 查看 2.9.1 的源代码,这是固定的。 StringLike.format(args: *Any) 现在只是包装 java.lang.String.format
      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      相关资源
      最近更新 更多