我在想在Scala中格式化字符串的最佳方法是什么。我正在为一个类重新实现toString方法,这是一个相当长且复杂的字符串。我考虑使用String.format,但它似乎在Scala中存在问题。是否有原生的Scala函数可以做到这一点?
我只是使用方法不正确。正确的用法是.format(参数1, 参数2)。
java.text.MessageFormat
呢?使用String#format
需要注意的是它实际上是通过反射来实现的(截至v2.7.4)。它委托给Java API,但反射会为相对较小的方法调用添加相当大的开销。出于性能原因,您可能需要考虑使用Java风格的字符串连接。据我了解,Scala版本2.8.0应该解决了这个问题。
StringLike.format(args: *Any)
现在只是简单地包装了java.lang.String.format
。 - mtsz
RichString
中有一个东西可以让你做一些更好的事情,而仅使用Java API时,你需要这样做: String.format( "%s has %d bunnies", name, bunnyCount )你可以这样做: "%s has %d bunnies".format( name, bunnyCount )甚至可以将其用作运算符: "%s has %d bunnies" format ( name, bunnyCount ) - Calum