Added String.repeat()
This commit is contained in:
@@ -2364,3 +2364,30 @@ public fun CharSequence.asSequence(): Sequence<Char> {
|
|||||||
if (this is String && isEmpty()) return emptySequence()
|
if (this is String && isEmpty()) return emptySequence()
|
||||||
return Sequence { this.iterator() }
|
return Sequence { this.iterator() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a string containing this char sequence repeated [n] times.
|
||||||
|
* @throws [IllegalArgumentException] when n < 0.
|
||||||
|
* @sample samples.text.Strings.repeat
|
||||||
|
*/
|
||||||
|
public fun CharSequence.repeat(n: Int): String {
|
||||||
|
require (n >= 0) { "Count 'n' must be non-negative, but was $n." }
|
||||||
|
|
||||||
|
return when (n) {
|
||||||
|
0 -> ""
|
||||||
|
1 -> this.toString()
|
||||||
|
else -> {
|
||||||
|
when (length) {
|
||||||
|
0 -> ""
|
||||||
|
1 -> this[0].let { char -> fromCharArray(CharArray(n) { char }, 0, n) }
|
||||||
|
else -> {
|
||||||
|
val sb = StringBuilder(n * length)
|
||||||
|
for (i in 1..n) {
|
||||||
|
sb.append(this)
|
||||||
|
}
|
||||||
|
sb.toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user