Efficiently repeat a character/string n times in Scala

前端 未结 1 573
半阙折子戏
半阙折子戏 2020-12-05 09:09

I would like to do the following more efficiently:

def repeatChar(char:Char, n: Int) = List.fill(n)(char).mkString
def repeatString(char:String, n: Int) = Li         


        
相关标签:
1条回答
  • 2020-12-05 09:54

    For strings you can just write "abc" * 3, which works via StringOps and uses a StringBuffer behind the scenes.

    For characters I think your solution is pretty reasonable, although char.toString * n is arguably clearer. Do you have any reason to suspect the List.fill version isn't efficient enough for your needs? You could write your own method that would use a StringBuffer (similar to * on StringOps), but I would suggest aiming for clarity first and then worrying about efficiency only when you have concrete evidence that that's an issue in your program.

    0 讨论(0)
提交回复
热议问题