代码之家  ›  专栏  ›  技术社区  ›  Samuel Kodytek

Kotlin并使用padend()两次

  •  1
  • Samuel Kodytek  · 技术社区  · 6 年前

    我试过用 padEnd() 两次 String . 第一次 焊盘端( 扩展函数按预期工作,但第二次,它没有添加我尝试的任何字符。

    我的代码:

    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),但仍然有相同的特性/缺陷。

    我也试过用 padStart() ,具有相同的行为,只需将其添加到 .

    混合两个扩展函数也没有按预期工作:使用 padstart()。 在那之后 焊盘端(

    这是预期的功能吗?如果是,为什么要这样?还是只虫子?

    1 回复  |  直到 6 年前
        1
  •  3
  •   zsmb13    6 年前

    padEnd 不将给定的字符添加到字符串中给定的次数-第一个参数是它将填充到的目标长度。从文档中:

    返回长度至少为的字符序列 length 由附加了 padChar 达到该长度所需的次数。

    所以在你的第二个电话里,你想 "Hi -> 0000" 直到它至少有5个字符长——这已经是了,所以在它的末尾不添加空格。