English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie mit Beispielen Kotlin-Strings, String-Templates und einige gängige String-Attribute und -Funktionen lernen.
字符串是字符序列。例如,"Hello there!"是字符串字面量。
在Kotlin中,所有字符串都是String类的对象。 这意味着,诸如“Hello here!”之类的字符串文字被实现为该类的实例。
这是在Kotlin中定义 String 变量的方法。例如,
val myString = "Hey there!"
在这里,myString是String类型的变量。
您可以声明 String 类型的变量,并在一条语句中指定其类型,然后在程序中稍后在另一条语句中初始化该变量。
val myString: String ... .. ... myString = "Howdy"
要访问字符串的元素(字符),请使用索引访问运算符。例如,
val myString = "Hey there!" val item = myString[2]
在这里,item 变量包含 myString 字符串的第三个字符y。 这是因为Kotlin中的索引从 0 开始而不是 1。
val myString = "Hey there!" var item: Char item = myString[0] // item = 'H' item = myString[9] // item = '!' item = myString[10] // 错误!字符串索引超出范围 item = myString[-1] // 错误!字符串索引超出范围
如果您需要遍历字符串的元素,则可以使用for循环轻松实现。
fun main(args: Array<String>) { val myString = "Hey!" for (item in myString) { println(item) } }
Die Ausgabe beim Ausführen des Programms ist:
H e y !
像Java一样,字符串在Kotlin中是不可变的。这意味着您不能更改字符串的单个字符。例如,
var myString = "Hey!" myString[0] = 'h' // Error! Strings
但是,如果使用关键字var声明了字符串变量,则可以重新分配该变量。(推荐阅读:Kotlin var vs val)
fun main(args: Array<String>) { var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") }
Die Ausgabe beim Ausführen des Programms ist:
myString = Hey! myString = Hello!
Literale sind die Quellcode-Repräsentation von festen Werten. Zum Beispiel ist "Hey there!" ein direkter Aufruf im Programm, der keine Berechnung erfordert und daher ein String-Literal (wieVariable)
In Kotlin gibt es zwei Arten von String-Literalen:
Zeichen können in einem escaped String bereits escaped sein. Zum Beispiel
val myString = "Hey there!\n"
Hier ist \n ein Escape-Zeichen, das verwendet wird, um einen Zeilenumbruch an der gewünschten Stelle im Text einzufügen.
Hier ist die Liste der Escape-Zeichen, die Kotlin unterstützt:
\t - Einfügen von Tabulator
\b - Einfügen von Backspace
\n - Einfügen von Zeilenumbruch
\r - Einfügen von Zeilenumbruch
\' - Einfügen von einfachen Anführungszeichen
\" - Einfügen von doppelten Anführungszeichen
\\ - Einfügen von Backslash
\$ - Einfügen von Dollarzeichen
Der ursprüngliche String kann Zeilenumbrüche (keine Zeilenumbrüche) und beliebigen Text enthalten. Der ursprüngliche String wird durch dreifache Anführungszeichen """ getrennt. Zum Beispiel:
fun main(args: Array<String>) { val myString = """ for (character in "Hey!") println(character) """ print(myString) }
Die Ausgabe beim Ausführen des Programms ist:
for (character in "Hey!") println(character)
Sie können die trimMargin()-Funktion verwenden, um führende Leerzeichen aus dem ursprünglichen String zu entfernen. Zum Beispiel:
fun main(args: Array<String>) { println("Ausgabe ohne trimMargin()-Funktion:") val myString = """ |Kotlin ist interessant. |Kotlin wird von JetBrains gesponsert und entwickelt. """ println(myString) println("Ausgabe mit der trimMargin()-Funktion:\n") println(myString.trimMargin()) }
Die Ausgabe beim Ausführen des Programms ist:
Ausgabe ohne trimMargin()-Funktion: |Kotlin ist interessant. |Kotlin wird von JetBrains gesponsert und entwickelt. Ausgabe mit der trimMargin()-Funktion: Kotlin ist interessant. Kotlin wird von JetBrains gesponsert und entwickelt.
Standardmäßig verwendet die trimMargin()-Funktion | als Präfix für den Abstand. Sie können es jedoch ändern, indem Sie einem neuen String übergeben.
fun main(args: Array<String>) { val myString = """ !!! Kotlin ist interessant. !!! Kotlin wird von JetBrains gesponsert und entwickelt. """ println(myString.trimMargin("!!! ")) }
Die Ausgabe beim Ausführen des Programms ist:
Kotlin ist interessant. Kotlin wird von JetBrains gesponsert und entwickelt.
Kotlin hat eine großartige Funktion namens String-Templates, die es ermöglicht, Strings mit Template-Expressionen zu enthalten.
String-Templates beginnen mit dem Dollarzeichen $. Hier sind einige Beispiele:
fun main(args: Array<String>) { val myInt = 5; val myString = "myInt = $myInt" println(myString) }
Die Ausgabe beim Ausführen des Programms ist:
myInt = 5
Dies liegt daran, dass der Ausdruck $myInt (ein Ausdruck, der mit einem $-Zeichen beginnt) ausgewertet und an den String angehängt wird.
fun main(args: Array<String>) { val a = 5 val b = 6 val myString = """ |${if (a > b) a else b} """ println("Der größere Wert ist: ${myString.trimMargin()}") }
Die Ausgabe beim Ausführen des Programms ist:
Der größere Wert ist: 6
Da Literale in Kotlin als Instanzen der String-Klasse implementiert sind, können Sie mehrere Methoden und Eigenschaften dieser Klasse verwenden.
length-Eigenschaft - Gibt die Länge der Zeichenfolge zurück.
compareTo-Funktion -Vergleicht diesen String (Objekt) mit dem angegebenen Objekt. Wenn das Objekt dem angegebenen Objekt entspricht, wird 0 zurückgegeben.
get-Funktion - Gibt den Buchstaben an der angegebenen Stelle zurück. Sie können den Index-Operator anstatt der get-Funktion verwenden, da der Index-Operator intern die get-Funktion aufruft.
plus-Funktion - Gibt einen neuen String zurück, der durch das Anhängen des Strings erhalten wird, der diesem Funktion übergeben wird. Sie können + Der Operator ersetzt die plus-Funktion, weil+Der Operator ruft im Hintergrund die plus-Funktion auf.
subSequence-Funktion - Gibt eine neue Zeichenfolge zurück, die von den angegebenen Start- und Endindizes definiert wird.
fun main(args: Array<String>) { val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("s1Die Länge des Strings ${s1.length}) " result = if (${s1.compareTo(s2) == 0) "gleich" else "ungleich" println("Der String s1und s2ist ${result}) // s1.get()2) entspricht ${s1[2] println("der dritte Buchstabe ist ${s1.get()2}).toString()) result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("Der Unterstring ist "${s1.subSequence(4, 7}} }
Beim Ausführen des Programms wird ausgegeben:
s1Die Länge der Zeichenkette ist 10. Zeichenkette s1und s2Ist gleich. Der dritte Buchstabe ist y. result = Hey there! How are you? Der Unterstring ist "the"