Kotlin 并使用 padEnd() 两次
Kotlin and use padEnd() twice
我尝试在 String
上使用 padEnd()
两次。 padEnd()
扩展函数第一次按预期工作,但第二次,它没有添加我尝试过的任何字符。
我的代码:
var s = "Hi -> "
s = s.padEnd(10, 'O')
s = s.padEnd(5, ' ')
println(s)
我的输出:
Hi -> OOOO
我正在使用 kotlin 版本 1.2.50。我还尝试 Jetbrains' online compiler 来防止该错误仅出现在我的计算机上,结果相同。我还尝试使用不同版本的 kotlin(1.0.7 和 1.1.60),但仍然相同 feature/bug.
我也尝试使用 padStart()
,具有相同的行为,只是将其添加在 String
之前。
混合两个扩展函数也没有按预期工作:使用 padStart()
并紧随其后 padEnd()
这是预期的功能吗?如果是这样,为什么会这样?或者这只是一个错误?
padEnd
不会将给定字符添加到您的 String 给定次数 - 第一个参数是它将填充到的目标长度。来自文档:
Returns a char sequence of length at least length
consisting of this char sequence appended with padChar
as many times as are necessary to reach that length.
所以在你的第二个电话中,你试图填充 "Hi -> 0000"
直到它至少有 5 个字符长 - 它已经是,所以在它的末尾没有添加空格。
你也可以这样做:
val outerChar = "*"
val x = outerChar.padEnd(10)
.plus("hello")
.plus(outerChar.padStart(10))
println(x)
// Prints:
// * hello *
这将在每边的 * 和 hello 之间放置 10 个空格。也尝试交换对 padEnd 和 padStart 的调用。
我尝试在 String
上使用 padEnd()
两次。 padEnd()
扩展函数第一次按预期工作,但第二次,它没有添加我尝试过的任何字符。
我的代码:
var s = "Hi -> "
s = s.padEnd(10, 'O')
s = s.padEnd(5, ' ')
println(s)
我的输出:
Hi -> OOOO
我正在使用 kotlin 版本 1.2.50。我还尝试 Jetbrains' online compiler 来防止该错误仅出现在我的计算机上,结果相同。我还尝试使用不同版本的 kotlin(1.0.7 和 1.1.60),但仍然相同 feature/bug.
我也尝试使用 padStart()
,具有相同的行为,只是将其添加在 String
之前。
混合两个扩展函数也没有按预期工作:使用 padStart()
并紧随其后 padEnd()
这是预期的功能吗?如果是这样,为什么会这样?或者这只是一个错误?
padEnd
不会将给定字符添加到您的 String 给定次数 - 第一个参数是它将填充到的目标长度。来自文档:
Returns a char sequence of length at least
length
consisting of this char sequence appended withpadChar
as many times as are necessary to reach that length.
所以在你的第二个电话中,你试图填充 "Hi -> 0000"
直到它至少有 5 个字符长 - 它已经是,所以在它的末尾没有添加空格。
你也可以这样做:
val outerChar = "*"
val x = outerChar.padEnd(10)
.plus("hello")
.plus(outerChar.padStart(10))
println(x)
// Prints:
// * hello *
这将在每边的 * 和 hello 之间放置 10 个空格。也尝试交换对 padEnd 和 padStart 的调用。