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) = List.fill(n)(char).mkString repeatChar('a',3) // res0: String = aaa repeatString("abc",3) // res0: String = abcabcabc
repeated = new String(new char[n]). replace("\0", s); Where n is the number of times you want to repeat the string and s is the string to repeat. No imports or libraries needed.
In Scala, as in Java, a string is an immutable object, that is, an object that cannot be modified. On the other hand, objects that can be modified, like arrays, are called mutable objects. Strings are very useful objects, in the rest of this section, we present important methods of java. lang. String class.
The count() method in Scala is used to count the occurrence of characters in the string. The function will return the count of a specific character in the string.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With