Introduce StringBuilder.clear() extension

#KT-18910 Fixed
This commit is contained in:
Ilya Gorbunov
2018-06-14 03:47:16 +03:00
parent c667340261
commit bbee18b84d
6 changed files with 58 additions and 0 deletions
@@ -129,6 +129,15 @@ public expect fun String.decapitalize(): String
public expect fun CharSequence.repeat(n: Int): String
/**
* Clears the content of this string builder making it empty.
*
* @sample samples.text.Strings.clearStringBuilder
*/
@SinceKotlin("1.3")
public expect fun StringBuilder.clear(): StringBuilder
/**
* Returns a new string with all occurrences of [oldChar] replaced with [newChar].
*/
+22
View File
@@ -53,5 +53,27 @@ public actual class StringBuilder(content: String = "") : Appendable, CharSequen
return this
}
/**
* Clears the content of this string builder making it empty.
*
* @sample samples.text.Strings.clearStringBuilder
*/
@SinceKotlin("1.3")
public fun clear(): StringBuilder {
string = ""
return this
}
override fun toString(): String = string
}
/**
* Clears the content of this string builder making it empty.
*
* @sample samples.text.Strings.clearStringBuilder
*/
@SinceKotlin("1.3")
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
public actual fun StringBuilder.clear(): StringBuilder = this.clear()
@@ -14,6 +14,13 @@ package kotlin.text
@kotlin.internal.InlineOnly
public inline operator fun StringBuilder.set(index: Int, value: Char): Unit = this.setCharAt(index, value)
/**
* Clears the content of this string builder making it empty.
*
* @sample samples.text.Strings.clearStringBuilder
*/
@SinceKotlin("1.3")
public actual fun StringBuilder.clear(): StringBuilder = apply { setLength(0) }
private object SystemProperties {
/** Line separator for current system. */
@@ -127,4 +127,14 @@ class Strings {
val noPadding = "abcde".padEnd(3)
assertPrints("'$noPadding'", "'abcde'")
}
@Sample
fun clearStringBuilder() {
val builder = StringBuilder()
builder.append("content").append(1)
assertPrints(builder, "content1")
builder.clear()
assertPrints(builder, "")
}
}
@@ -66,4 +66,13 @@ class StringBuilderTest {
assertEquals("content", sb.toString())
}
}
@Test fun clear() {
val sb = StringBuilder()
sb.append("test")
val s = sb.toString()
sb.clear()
assertTrue(sb.isEmpty())
assertEquals("test", s)
}
}
@@ -4731,6 +4731,7 @@ public final class kotlin/text/StringsKt {
public static final fun chunked (Ljava/lang/CharSequence;ILkotlin/jvm/functions/Function1;)Ljava/util/List;
public static final fun chunkedSequence (Ljava/lang/CharSequence;I)Lkotlin/sequences/Sequence;
public static final fun chunkedSequence (Ljava/lang/CharSequence;ILkotlin/jvm/functions/Function1;)Lkotlin/sequences/Sequence;
public static final fun clear (Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
public static final fun commonPrefixWith (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Ljava/lang/String;
public static synthetic fun commonPrefixWith$default (Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Ljava/lang/String;
public static final fun commonSuffixWith (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Ljava/lang/String;