Kotlin String Vorlagen

Kotlin String Vorlagen

1. Überblick

In diesem Tutorial erklären wir, was KotlinsString-Vorlagen sind und wie sie verwendet werden.

Schauen Sie sich eines unsererKotlin tutorialsan, um sich mit anderen Funktionen vertraut zu machen und zu wissen, wie man Kotlin verwendet.

2. Streicher in Kotlin

Wie in Java sindStrings in Kotlin unveränderlich. Das bedeutet, dass wir keine Möglichkeit haben, einString nach seiner Erstellung zu ändern. Wir können jedoch weitereString von einem gegebenen ableiten.

Kotlin hat die Klasse von JavaStringum zusätzliche Funktionen erweitert.

Mit der MethodepadEnd() können wir beispielsweiseString, so formatieren, dass der Ausdruck:

"Hello".padEnd(10, '!')

Welches erzeugt eine neue Zeichenfolge“Hello!!!!!”.

3. String-Vorlagen

Zeichenfolgenvorlagen sindString-Literale, die eingebettete Ausdrücke enthalten.

Zum Beispiel dieser Code in Java:

String message = "n = " + n;

In Kotlin ist nur:

val message = "n = $n"

Jeder gültige Kotlin-Ausdruck kann in einerString-Vorlage verwendet werden:

val message = "n + 1 = ${n + 1}"

Unlike Java, many Kotlin’s constructs (but certainly, not all) are expressions.

Daher kann die Vorlage einesStringauch Logik enthalten:

val message = "$n is ${if(n > 0) "positive" else "not positive"}

Beachten Sie, dass sich in den geschweiften Klammern ein gültiger Kotlin-Ausdruck befindet. Dies ist ein Grund, warum wir uns den verschachtelten doppelten Anführungszeichen nicht entziehen.

String Vorlagen werden aufgelöst, indem der Ausdruck ausgewertet und einetoString()-Methode für das Ergebnis der Auswertung aufgerufen wird.

String Vorlagen können verschachtelt werden:

val message = "$n is ${if (n > 0) "positive" else
  if (n < 0) "negative and ${if (n % 2 == 0) "even" else "odd"}" else "zero"}"

Der Vorlagenparser vonStringbeginnt, ihn aus der am meisten verschachtelten Vorlage aufzulösen, wertet ihn aus und ruft einetoString()-Methode darauf auf.

Obwohl die Vorlagen vonStringmöglicherweise verschachtelt sind, ist es eine gute Idee, sie so einfach wie möglich zu gestalten. Dies ist überhaupt nicht schwierig, da Kotlin uns viele nützliche Tools zur Verfügung stellt.

Was ist, wenn wir ein rohes Dollarzeichen verwenden möchten und nicht als Teil der Vorlage einesString?

Dann entkommen wir ihm, indem wir einen Backslash voranstellen:

val message = "n = \$n"

Was auf das Dollarzeichen folgt, wird zu einem normalenString - es wird nicht mehr ausgewertet und so interpretiert, wie es ist.

4. Rohe Saiten

In Kotlin haben wir zusätzlich dreifach zitierte rohe Zeichenfolgen, die Sonderzeichen enthalten können, ohne dass diese maskiert werden müssen.

Das resultierendeString ist zwischen zwei aufeinanderfolgenden nicht überlappenden Vorkommen von dreifachen doppelten Anführungszeichen enthalten.

Um beispielsweise in Java einString mit einem Dateipfad im Windows-Stil zu einer Ressource inC:\Repository ead.me, ordnungsgemäß zu erstellen, sollten Sie es folgendermaßen definieren:

String path = "C:\\Repository\\read.me"

In Kotlin können wir die dreifach zitierte Notation verwenden, um dasselbe Ergebnis zu erzielen:

val path = """C:\Repository\read.me"""

Wir können diese Notation verwenden, um ein mehrzeiligesString: zu erstellen

val receipt = """Item 1: $1.00
Item 2: $0.50"""

Dadurch wird einString erstellt, das genau zwei Zeilen umfasst. Wenn wir diesen Einzug bevorzugen:

val receipt = """Item 1: $1.00
                >Item 2: $0.50""".trimMargin(">")

Wir verwenden einetrimMargin()-Methode, die eventuelle Leerzeichen vom Anfang jeder Zeile bis zum ersten Auftreten des Randpräfixes (> im obigen Beispiel) eliminiert.

Triple-quoted strings don’t support any escape sequences. Es bedeutet, dass, wenn wir geschrieben haben

val receipt = """Item 1: $1.00\nItem 2: $0.50"""

Um ein zweizeiligesString, zu erhalten, erhalten wir anstelle des erwarteten Zeilenumbruchs eine einzelne Zeile mit den Zeichen .

Stringsmit dreifachen Anführungszeichen unterstützen jedoch Vorlagen.

Dies bedeutet, dass jede Sequenz, die mit dem Dollarzeichen beginnt, auf die im vorherigen Abschnitt beschriebene Weise in eine Zeichenfolge aufgelöst wird. Wir können diese Tatsache nutzen, um die Escape-Zeichen funktionieren zu lassen:

val receipt = """Item 1: $1.00${"\n"}Item 2: $0.50"""

5. Fazit

In diesem Artikel haben wir eine Funktion der Kotlin-Sprache betrachtet, die in Java-Vorlagen (String) nicht vorhanden ist. Wir haben ihre Verwendung bei normalen und mehrzeiligenStrings.gezeigt

Sie finden alle hier erwähnten Codefragmente in unserem Repositoryon GitHub.