Kotlin-Äquivalent zu Javas equalsIgnoreCase

Antworten:

133

Sie können folgende Parameter verwenden, equalsaber angeben ignoreCase:

"example".equals("EXAMPLE", ignoreCase = true)
hluhovskyi
quelle
2

Normalerweise müssen Sie keine Alternativen finden, da Kotlin vorhandene Java-Typen wie wiederverwendet String. Tatsächlich werden diese Typen internen Kotlin-Typen zugeordnet. Im Falle Stringsieht es so aus:

java.lang.String -> kotlin.String

Daher equalsIgnoreCasewäre die gewünschte Methode nur verfügbar, wenn sie auch in bereitgestellt würde kotlin.String, was nicht der Fall ist. Die Kotlin-Designer haben beschlossen, eine allgemeinere equalsFunktion bereitzustellen , mit der Sie die Groß- und Kleinschreibung mit einem booleschen Parameter festlegen können.

Sie können die Java- StringKlasse jederzeit verwenden, wenn dies wirklich erforderlich ist (es wird nicht empfohlen, IntelliJ wird sich darüber beschweren):

("hello" as java.lang.String).equalsIgnoreCase("Hello")

Mit Hilfe einer Erweiterungsfunktion können wir der kotlin.StringKlasse sogar folgende Funktionen hinzufügen :

fun String.equalsIgnoreCase(other: String) = 
    (this as java.lang.String).equalsIgnoreCase(other)
s1m0nw1
quelle
Kotlin hat die EqualIgnoreCase-Funktion implementiert, jedoch mit einer kleinen Änderung auf seine eigene Weise, dh "str1" .equal ("Str1", true) für Groß- / Kleinschreibung und "str1" .equal ("Str1", false) für Übereinstimmungsfall. Das zweite Argument ist optional. Sie können es überspringen. Standardmäßig ist es falsch und gilt für den Fall eines Spiels
Abdur Rahman
1

@ hluhovskyis Antwort ist korrekt, jedoch um sie zu verwenden EditTextoder TextViewverwenden Sie Folgendes:

etPassword.text.toString().equals(etConfirmPassword.text.toString(), ignoreCase = true)
Rohan Kandwal
quelle
-1

Sie können gleich verwenden, aber den Parameter ignoreCase angeben:

"your string".equals("YOUR STRING", ignoreCase = true)
Ranajit Sawant
quelle