diff --git a/libraries/stdlib/src/kotlin/Strings.kt b/libraries/stdlib/src/kotlin/Strings.kt index ae159b579e5..bf8625f272f 100644 --- a/libraries/stdlib/src/kotlin/Strings.kt +++ b/libraries/stdlib/src/kotlin/Strings.kt @@ -63,18 +63,3 @@ public inline fun String.count(predicate: (Char) -> Boolean): Int { } return answer } - -/** - * Repeats a given string n times. - * When n < 0, IllegalArgumentException is thrown. - * @includeFunctionBody ../../test/StringTest.kt repeat - */ -public inline fun String.repeat(n: Int): String { - require(n >= 0, { "Cannot repeat string $n times" }) - - var sb = StringBuilder() - for (i in 1..n) { - sb.append(this) - } - return sb.toString() -} diff --git a/libraries/stdlib/src/kotlin/StringsJVM.kt b/libraries/stdlib/src/kotlin/StringsJVM.kt index 074b6df81bf..f2170bd0a53 100644 --- a/libraries/stdlib/src/kotlin/StringsJVM.kt +++ b/libraries/stdlib/src/kotlin/StringsJVM.kt @@ -192,3 +192,17 @@ public inline fun String.decapitalize(): String { return if (notEmpty() && charAt(0).isUpperCase()) substring(0, 1).toLowerCase() + substring(1) else this } +/** + * Repeats a given string n times. + * When n < 0, IllegalArgumentException is thrown. + * @includeFunctionBody ../../test/StringTest.kt repeat + */ +public inline fun String.repeat(n: Int): String { + require(n >= 0, { "Cannot repeat string $n times" }) + + var sb = StringBuilder() + for (i in 1..n) { + sb.append(this) + } + return sb.toString() +} diff --git a/libraries/stdlib/test/StringJVMTest.kt b/libraries/stdlib/test/StringJVMTest.kt index b9d58c3815d..75cbd1d564a 100644 --- a/libraries/stdlib/test/StringJVMTest.kt +++ b/libraries/stdlib/test/StringJVMTest.kt @@ -65,5 +65,11 @@ class StringJVMTest { assertEquals(s, list[0]) } - + test fun repeat() { + fails{ "foo".repeat(-1) } + assertEquals("", "foo".repeat(0)) + assertEquals("foo", "foo".repeat(1)) + assertEquals("foofoo", "foo".repeat(2)) + assertEquals("foofoofoo", "foo".repeat(3)) + } } diff --git a/libraries/stdlib/test/StringTest.kt b/libraries/stdlib/test/StringTest.kt index 072cc9d489a..30e8a1ededc 100644 --- a/libraries/stdlib/test/StringTest.kt +++ b/libraries/stdlib/test/StringTest.kt @@ -49,12 +49,4 @@ class StringTest { assertEquals("uRL", "URL".decapitalize()) } - test fun repeat() { - fails{ "foo".repeat(-1) } - assertEquals("", "foo".repeat(0)) - assertEquals("foo", "foo".repeat(1)) - assertEquals("foofoo", "foo".repeat(2)) - assertEquals("foofoofoo", "foo".repeat(3)) - } - }