[K/N] Commonize and generalize JVM-only String.contentEquals #KT-42840

This commit is contained in:
Abduqodiri Qurbonzoda
2021-03-05 03:48:30 +03:00
parent ed57bcb3b1
commit c2f6a2cb96
@@ -426,6 +426,30 @@ public actual fun String.compareTo(other: String, ignoreCase: Boolean): Int {
else compareToIgnoreCase(this, other)
}
/**
* Returns `true` if the contents of this char sequence are equal to the contents of the specified [other],
* i.e. both char sequences contain the same number of the same characters in the same order.
*
* @sample samples.text.Strings.contentEquals
*/
@SinceKotlin("1.5")
public actual infix fun CharSequence?.contentEquals(other: CharSequence?): Boolean = contentEqualsImpl(other)
/**
* Returns `true` if the contents of this char sequence are equal to the contents of the specified [other], optionally ignoring case difference.
*
* @param ignoreCase `true` to ignore character case when comparing contents.
*
* @sample samples.text.Strings.contentEquals
*/
@SinceKotlin("1.5")
public actual fun CharSequence?.contentEquals(other: CharSequence?, ignoreCase: Boolean): Boolean {
return if (ignoreCase)
this.contentEqualsIgnoreCaseImpl(other)
else
this.contentEqualsImpl(other)
}
@SharedImmutable
private val STRING_CASE_INSENSITIVE_ORDER = Comparator<String> { a, b -> a.compareTo(b, ignoreCase = true) }