我想更有效地执行以下操作:
def repeatChar(char:Char, n: Int) = List.fill(n)(char).mkString
def repeatString(char:String, n: Int) = List.fill(n)(char).mkString
repeatChar('a',3) // res0: String = aaa
repeatString("abc",3) // res0: String = abcabcabc
答案 0 :(得分:97)
对于字符串,您只需撰写"abc" * 3
即可通过StringOps
投放,并在幕后使用StringBuffer
。
对于角色,我认为你的解决方案非常合理,尽管char.toString * n
可以说更清晰。您是否有理由怀疑List.fill
版本不足以满足您的需求?您可以编写自己的方法,使用StringBuffer
(类似于*
上的StringOps
),但我建议首先明确目标,然后在有具体证据时担心效率问题这是你程序中的一个问题。
答案 1 :(得分:0)
你可以简单地定义:
def repeatChar(char:Char, n: Int) = char.toString().repeat(n)
def repeatString(char:String, n: Int) = char.repeat(n)