Skip to content

Commit 46936cf

Browse files
author
Julian R
committed
[stdlib] KT-80748 add ensurePrefix and ensureSuffix extension functions
1 parent 1ac1674 commit 46936cf

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

libraries/stdlib/src/kotlin/text/Strings.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ public fun String.removePrefix(prefix: CharSequence): String {
634634
* If this char sequence does not start with the given [prefix], returns a new char sequence
635635
* with the prefix added. Otherwise, returns a new char sequence with the same characters.
636636
*/
637-
public fun CharSequence.appendPrefix(prefix: CharSequence): CharSequence {
637+
public fun CharSequence.ensurePrefix(prefix: CharSequence): CharSequence {
638638
if (!this.startsWith(prefix)) {
639639
return prefix.toString() + this.toString()
640640
}
@@ -645,7 +645,7 @@ public fun CharSequence.appendPrefix(prefix: CharSequence): CharSequence {
645645
* If this string does not start with the given [prefix], returns a copy of this string
646646
* with the prefix added. Otherwise, returns this string.
647647
*/
648-
public fun String.appendPrefix(prefix: CharSequence): String {
648+
public fun String.ensurePrefix(prefix: CharSequence): String {
649649
if (!this.startsWith(prefix)) {
650650
return prefix.toString() + this
651651
}
@@ -678,7 +678,7 @@ public fun String.removeSuffix(suffix: CharSequence): String {
678678
* If the char sequence not ends with the given [suffix], returns a copy of this string
679679
* with the suffix appended. Otherwise, returns a new char sequence with the same characters.
680680
*/
681-
public fun CharSequence.appendSuffix(suffix: CharSequence): CharSequence {
681+
public fun CharSequence.ensureSuffix(suffix: CharSequence): CharSequence {
682682
if (!endsWith(suffix)) {
683683
return this.toString() + suffix.toString()
684684
}
@@ -689,7 +689,7 @@ public fun CharSequence.appendSuffix(suffix: CharSequence): CharSequence {
689689
* If the string not ends with the given [suffix], returns a copy of this string
690690
* with the suffix appended. Otherwise, returns this string.
691691
*/
692-
public fun String.appendSuffix(suffix: CharSequence): String {
692+
public fun String.ensureSuffix(suffix: CharSequence): String {
693693
if (!endsWith(suffix)) {
694694
return this + suffix.toString()
695695
}

libraries/stdlib/test/text/StringTest.kt

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -596,16 +596,16 @@ class StringTest {
596596
assertEquals("sample", "sample".removeSuffix(""))
597597
}
598598

599-
@Test fun appendSuffix() = withOneCharSequenceArg("fix") { suffix ->
600-
assertEquals("suffix", "suf".appendSuffix(suffix), "Appends suffix")
601-
assertEquals("suffix", "suffix".appendSuffix(suffix))
602-
assertEquals("sample", "sample".appendSuffix(""))
599+
@Test fun ensureSuffix() = withOneCharSequenceArg("fix") { suffix ->
600+
assertEquals("suffix", "suf".ensureSuffix(suffix), "Appends suffix")
601+
assertEquals("suffix", "suffix".ensureSuffix(suffix))
602+
assertEquals("sample", "sample".ensureSuffix(""))
603603
}
604604

605-
@Test fun appendPrefix() = withOneCharSequenceArg("suf") { prefix ->
606-
assertEquals("suffix", "fix".appendSuffix(prefix), "Appends prefix")
607-
assertEquals("suffix", "suffix".appendSuffix(prefix))
608-
assertEquals("sample", "sample".appendSuffix(""))
605+
@Test fun ensurePrefix() = withOneCharSequenceArg("suf") { prefix ->
606+
assertEquals("suffix", "fix".ensurePrefix(prefix), "Appends prefix")
607+
assertEquals("suffix", "suffix".ensurePrefix(prefix))
608+
assertEquals("sample", "sample".ensurePrefix(""))
609609
}
610610

611611
@Test fun removeSurrounding() = withOneCharSequenceArg { arg1 ->
@@ -640,22 +640,22 @@ class StringTest {
640640
assertContentEquals("sample", "sample".removeSuffix(""))
641641
}
642642

643-
@Test fun appendPrefixCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->
644-
fun String.appendPrefix(prefix: String) = arg1(this).appendPrefix(arg2(prefix))
643+
@Test fun ensurePrefixCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->
644+
fun String.ensurePrefix(prefix: String) = arg1(this).ensurePrefix(arg2(prefix))
645645
val prefix = "suf"
646646

647-
assertContentEquals("suffix", "fix".appendPrefix(prefix), "Appends prefix")
648-
assertContentEquals("suffix", "suffix".appendPrefix(prefix))
649-
assertContentEquals("sample", "sample".appendPrefix(""))
647+
assertContentEquals("suffix", "fix".ensurePrefix(prefix), "Appends prefix")
648+
assertContentEquals("suffix", "suffix".ensurePrefix(prefix))
649+
assertContentEquals("sample", "sample".ensurePrefix(""))
650650
}
651651

652-
@Test fun appendSuffixCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->
653-
fun String.appendSuffix(suffix: String) = arg1(this).appendSuffix(arg2(suffix))
652+
@Test fun ensureSuffixCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->
653+
fun String.ensureSuffix(suffix: String) = arg1(this).ensureSuffix(arg2(suffix))
654654
val suffix = "fix"
655655

656-
assertContentEquals("suffix", "suf".appendSuffix(suffix), "Appends suffix")
657-
assertContentEquals("suffix", "suffix".appendSuffix(suffix))
658-
assertContentEquals("sample", "sample".appendSuffix(""))
656+
assertContentEquals("suffix", "suf".ensureSuffix(suffix), "Appends suffix")
657+
assertContentEquals("suffix", "suffix".ensureSuffix(suffix))
658+
assertContentEquals("sample", "sample".ensureSuffix(""))
659659
}
660660

661661
@Test fun removeSurroundingCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->

0 commit comments

Comments
 (0)