Преобразуйте число в строку, заполните 0, когда недостаточно двух символов - PullRequest
0 голосов
/ 29 мая 2020

Я хочу отформатировать число до String и заполнить 0, когда недостаточно двух символов

fun formatDuration(val duration):String {
    val minutes = duration.toInt() / 60
    return  "$minutes"
}

Например, если minutes равно 6, оно должно отображаться 06, а чем 6.

Ответы [ 2 ]

4 голосов
/ 29 мая 2020

Вы можете 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')
}

Выполнение этого приводит к выводу 06.

В качестве альтернативы вы можете просто использовать String.format() от Java, просто return "%02d".format(minutes) вместо return minutes.toString().padStart(2, '0'), результат останется прежним.

1 голос
/ 29 мая 2020

Вы можете достичь этого с помощью padStart [1]

Пример:

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'

[1] https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/pad-start.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...