/**
* Uses this string as a format string and returns a string obtained by substituting the specified arguments,
* using the default locale.
*/
@kotlin.internal.InlineOnly
public inline fun String.Companion.format(format: String, vararg args: Any?): String = java.lang.String.format(format, *args)
用法
val pi = 3.14159265358979323
val formatted = String.format("%.2f", pi) ;
println(formatted)
>>3.14
7 回答
Kotlin的String类现在有一个format函数,它在内部使用Java的
String.format
方法:用法
它简单,用途:
很多答案都是指String.format和相关的,但不是最新master分支中的正确位置 . 作为参考,this是它现在所在的位置 .
由于
String.format
只是一个内部调用java.lang.String.format
的扩展函数(参见here),如果您需要更多的灵活性,可以使用Java的DecimalFormat编写自己的扩展函数:试试take . 它返回一个包含前n个元素的列表 .
但这正是rekire所说的收藏品,他们在下面的评论中礼貌地纠正了我 .
您可以转换为字符串,使用take并转换回Double .
虽然不是最好的主意,但它确实有效 .
遗憾的是,对于字符串模板中的格式化没有内置支持,作为解决方法,您可以使用以下内容:
您需要将自己定义为
.format(n)
函数目前Kotlin显然缺少一些功能,我们将修复它 .
作为一种解决方法,There is a Kotlin stdlib function可以以一种很好的方式使用并且与Java 's String format (it'完全兼容只是Java的
String.format()
的包装器你的代码是: