将数字格式化为字符串,不足两个字符时补0

Cyr*_*rus 9 kotlin

我想将数字格式化为并在不足两个字符时String填充0

\n\n
fun formatDuration(val duration):String {\n    val minutes = duration.toInt() / 60\n    return  "$minutes"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如,如果minutes是 6\xef\xbc\x8c,则应显示它06而不是6

\n

deH*_*aar 14

你可以得到 的padStart结果。toString()minutes

我在 Kotlin Playground 中尝试了您的代码,但它无法编译/运行。对于以下示例,我必须更改您的部分内容fun

fun main() {
    println(formatDuration(364.34))
}

fun formatDuration(duration: Double): String {
    val minutes = duration.toInt() / 60
    // fill the result to be of 2 characters, use 0 as padding char
    return minutes.toString().padStart(2, '0')
}
Run Code Online (Sandbox Code Playgroud)

执行此命令会产生输出06

或者,您可以简单地String.format()从 Java 使用,只需

fun main() {
    println(formatDuration(364.34))
}

fun formatDuration(duration: Double): String {
    val minutes = duration.toInt() / 60
    // fill the result to be of 2 characters, use 0 as padding char
    return minutes.toString().padStart(2, '0')
}
Run Code Online (Sandbox Code Playgroud)

而不是return minutes.toString().padStart(2, '0'),结果保持不变。


小智 8

您可以通过以下方式实现此目的padStart

例子:

val padWithSpace = "125".padStart(5)
println("'$padWithSpace'") // '  125'

val padWithChar = "a".padStart(5, '.')
println("'$padWithChar'") // '....a'

// string is returned as is, when its length is greater than the specified
val noPadding = "abcde".padStart(3)
println("'$noPadding'") // 'abcde'
Run Code Online (Sandbox Code Playgroud)