Kotlin String und String Templates (mit Beispielen)

In diesem Artikel lernen Sie anhand von Beispielen Kotlin-Zeichenfolgen, Zeichenfolgenvorlagen und einige häufig verwendete Zeichenfolgeneigenschaften und -funktionen kennen.

Kotlin String

Zeichenfolgen sind eine Folge von Zeichen. Zum Beispiel "Hello there!"ist ein String-Literal.

In Kotlin sind alle Zeichenfolgen StringKlassenobjekte. Das heißt, Zeichenfolgenliterale, wie "Hello there!"sie als Instanzen dieser Klasse implementiert sind.

Wie erstelle ich eine String-Variable?

So können Sie eine StringVariable in Kotlin definieren. Beispielsweise,

 val myString = "Hey da!"

Hier ist myString eine Variable vom Typ String.

Sie können Variablen vom Typ deklarieren Stringund ihren Typ in einer Anweisung angeben und die Variable später im Programm in einer anderen Anweisung initialisieren.

 val myString: String… myString = "Grüß dich"

Wie greife ich auf Zeichen eines Strings zu?

Für den Zugriff auf Elemente (Zeichen) einer Zeichenfolge wird der Indexzugriffsoperator verwendet. Beispielsweise,

val myString = "Hey da!" val item = myString (2)

Hier enthält die Elementvariable y, das dritte Zeichen der myString-Zeichenfolge. Dies liegt daran, dass die Indizierung in Kotlin bei 0 und nicht bei 1 beginnt.

val myString = "Hey da!" var item: Char item = myString (0) // item enthält 'H' item = myString (9) // item enthält '!' item = myString (10) // Fehler! String-Index liegt außerhalb des Bereichs item = myString (-1) // Fehler! Der Zeichenfolgenindex liegt außerhalb des Bereichs

Beispiel: Durch einen String iterieren

Wenn Sie Elemente einer Zeichenfolge durchlaufen müssen, können Sie dies einfach mithilfe einer for-Schleife tun.

 fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 H e y ! 

Saiten in Kotlin sind unveränderlich

Zeichenfolgen sind wie Java in Kotlin unveränderlich. Dies bedeutet, dass Sie das einzelne Zeichen einer Zeichenfolge nicht ändern können. Beispielsweise,

var myString = "Hey!" myString (0) = 'h' // Fehler! Saiten

Sie können eine Zeichenfolgenvariable jedoch erneut zuweisen, wenn Sie die Variable mit dem Schlüsselwort deklariert haben var. ( Empfohlene Lektüre : Kotlin var Vs val)

Beispiel: Neuzuweisen einer Zeichenfolgenvariablen.

 fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

myString = Hey! myString = Hallo!

String-Literale

Ein Literal ist die Quellcodedarstellung eines festen Werts. Beispielsweise "Hey there!"handelt es sich um ein Zeichenfolgenliteral, das direkt in einem Programm angezeigt wird, ohne dass eine Berechnung erforderlich ist (wie bei Variablen).

In Kotlin gibt es zwei Arten von String-Literalen:

1. Escaped String

Eine maskierte Zeichenfolge enthält möglicherweise maskierte Zeichen. Beispielsweise,

 val myString = "Hey da! n" 

Hier ist ein Escape-Zeichen, das eine neue Zeile in den Text einfügt, in dem es angezeigt wird.

Hier ist eine Liste der in Kotlin unterstützten Escape-Zeichen:

  • - Registerkarte Einfügungen
  •  - Fügt die Rücktaste ein
  • - Fügt eine neue Zeile ein
  • - Wagenrücklauf einfügen
  • \' - Fügt ein einfaches Anführungszeichen ein
  • " - Fügt ein doppeltes Anführungszeichen ein
  • \ - Fügt einen Backslash ein
  • $ - Fügt ein Dollarzeichen ein

2. Raw String

Eine rohe Zeichenfolge kann Zeilenumbrüche (kein neues Zeilenumbruchzeichen) und beliebigen Text enthalten. Eine rohe Zeichenfolge wird durch ein dreifaches Anführungszeichen begrenzt """. Beispielsweise,

 fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 für (Zeichen in "Hey!") println (Zeichen)

Sie können die führenden Leerzeichen einer Rohzeichenfolge mit der Funktion trimMargin () entfernen. Beispielsweise,

Beispiel: Raw String drucken

 fun main(args: Array) ( println("Output without using trimMargin function:") val myString = """ |Kotlin is interesting. |Kotlin is sponsored and developed by JetBrains. """ println(myString) println("Output using trimMargin function:") println(myString.trimMargin()) ) 

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

Ausgabe ohne Verwendung der trimMargin-Funktion: | Kotlin ist interessant. | Kotlin wird von JetBrains gesponsert und entwickelt. Ausgabe mit der Funktion trimMargin: Kotlin ist interessant. Kotlin wird von JetBrains gesponsert und entwickelt.

Standardmäßig trimMargin()verwendet die Funktion | als Randpräfix. Sie können dies jedoch ändern, indem Sie dieser Funktion eine neue Zeichenfolge übergeben.

Beispiel: trimMargin () mit Argument

 fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

Kotlin ist interessant. Kotlin wird von JetBrains gesponsert und entwickelt.

Kotlin String Templates

Kotlin has an awesome feature called string templates that allows strings to contain template expressions.

A string template expression starts with a dollar sign $. Here are few examples:

Example: Kotlin String Template

 fun main(args: Array) ( val myInt = 5; val myString = "myInt = $myInt" println(myString) )

When you run the program, the output will be:

 myInt = 5

It is because the expression $myInt (expression starting with $ sign) inside the string is evaluated and concatenated into the string.

Example: String Template With Raw String

 fun main(args: Array) ( val a = 5 val b = 6 val myString = """ |$(if (a> b) a else b) """ println("Larger number is: $(myString.trimMargin())") )

When you run the program, the output will be:

 Larger number is: 6 

Few String Properties and Functions

Since literals in Kotlin are implemented as instances of String class, you can use several methods and properties of this class.

  • length property - returns the length of character sequence of an string.
  • compareTo function - compares this String (object) with the specified object. Returns 0 if the object is equal to the specfied object.
  • get function - returns character at the specified index.
    You can use index access operator instead of get function as index access operator internally calls get function.
  • plus function - returns a new string which is obtained by the concatenation of this string and the string passed to this function.
    You can use + operator instead of plus function as + operator calls plus function under the hood.
  • subSequence Function - returns a new character sequence starting at the specified start and end index.

Example: String Properties and Function

 fun main(args: Array) ( val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("Length of s1 string is $(s1.length).") result = if (s1.compareTo(s2) == 0) "equal" else "not equal" println("Strings s1 and s2 are $result.") // s1.get(2) is equivalent to s1(2) println("Third character is $(s1.get(2)).") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("Substring is "$(s1.subSequence(4, 7)) "") )

When you run the program, the output is:

Die Länge der Zeichenfolge s1 beträgt 10. Die Zeichenfolgen s1 und s2 sind gleich. Das dritte Zeichen ist y. Ergebnis = Hey da! Wie geht es dir? Teilzeichenfolge ist "die"

Weitere Informationen zu Erweiterungseigenschaften, Erweiterung, Funktionen und Konstruktoren finden Sie in der Kotlin String-Klasse.

Interessante Beiträge...