【发布时间】:2010-10-25 17:09:46
【问题描述】:
我想知道在 Scala 中格式化字符串的最佳方式是什么。我正在为一个类重新实现 toString 方法,它是一个相当长且复杂的字符串。我考虑过使用 String.format,但 Scala 似乎有问题。是否有用于执行此操作的原生 Scala 函数?
【问题讨论】:
我想知道在 Scala 中格式化字符串的最佳方式是什么。我正在为一个类重新实现 toString 方法,它是一个相当长且复杂的字符串。我考虑过使用 String.format,但 Scala 似乎有问题。是否有用于执行此操作的原生 Scala 函数?
【问题讨论】:
我只是用错了。正确用法是 .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)
好老的java.text.MessageFormat怎么样?
【讨论】:
String#format 需要注意的是它实际上是使用反射实现的(从 v2.7.4 开始)。它委托给 Java API,但反射给相对较小的方法调用增加了相当大的开销。出于性能原因,您可能需要考虑 Java 样式的字符串连接。据我了解,Scala 2.8.0 版应该可以解决这个问题。
【讨论】:
StringLike.format(args: *Any) 现在只是包装 java.lang.String.format。