Kotlin String and String Templates (With examples)

V tomto článku se pomocí příkladů dozvíte o řetězcích Kotlin, šablonách řetězců a několika běžně používaných vlastnostech a funkcích řetězců.

Řetězec Kotlin

Řetězce jsou posloupností znaků. Například "Hello there!"je řetězcový literál.

V Kotlin jsou všechny řetězce objekty Stringtřídy. To znamená, že řetězcové literály jako "Hello there!"jsou implementovány jako instance této třídy.

Jak vytvořit proměnnou řetězce?

Zde můžete definovat Stringproměnnou v Kotlin. Například,

 val myString = "Hej!"

Zde je myString proměnná typu String.

Můžete deklarovat proměnnou typu Stringa určit její typ v jednom příkazu a inicializovat proměnnou v jiném příkazu později v programu.

 val myString: Řetězec … myString = "Howdy"

Jak získat přístup k znakům řetězce?

Pro přístup k prvkům (znaku) řetězce se používá operátor přístupu k indexu. Například,

val myString = "Hej!" val item = myString (2)

Zde proměnná položky obsahuje y, třetí znak řetězce myString. Je to proto, že indexování v Kotlin začíná od 0 ne 1.

val myString = "Hej!" var item: Char item = myString (0) // item contains 'H' item = myString (9) // item contains '!' item = myString (10) // Chyba! Řetězcový index je mimo rozsah item = myString (-1) // Chyba! Řetězcový index je mimo rozsah

Příklad: Iterace řetězcem

Pokud potřebujete iterovat prvky řetězce, můžete to udělat snadno pomocí smyčky for.

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

Když spustíte program, výstup bude:

 H e y ! 

Řetězce v Kotlinu jsou nezměnitelné

Stejně jako Java jsou řetězce v Kotlinu neměnné. To znamená, že nemůžete změnit jednotlivé znaky řetězce. Například,

var myString = "Hej!" myString (0) = 'h' // Chyba! Struny

Řetězcovou proměnnou však můžete znovu přiřadit, pokud jste proměnnou deklarovali pomocí klíčového slova var. ( Doporučené čtení : Kotlin var Vs val)

Příklad: Nové přiřazení řetězcové proměnné.

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

Když spustíte program, výstup bude:

myString = Hej! myString = Dobrý den!

Řetězcové literály

Literál je reprezentace zdrojového kódu pevné hodnoty. Například "Hey there!"je to řetězcový literál, který se objeví přímo v programu bez nutnosti výpočtu (jako proměnné).

V Kotlin existují dva typy řetězcových literálů:

1. Uniklý řetězec

Unikající řetězec mohl obsahovat znaky v nich. Například,

 val myString = "Ahoj! n" 

Zde je únikový znak, který vloží nový řádek do textu, kde se objeví.

Zde je seznam únikových znaků podporovaných Kotlinem:

  • - Záložka Vložky
  •  - Vloží backspace
  • - Vloží nový řádek
  • - Vloží návrat vozíku
  • \' - Vloží znak jednoduché uvozovky
  • " - Vloží znak dvojité uvozovky
  • \ - Vloží zpětné lomítko
  • $ - Vloží znak dolaru

2. Surový řetězec

Nezpracovaný řetězec může obsahovat nové řádky (nikoli nový znak pro ukončení řádku) a libovolný text. Nezpracovaný řetězec je ohraničen trojitou uvozovkou """. Například,

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

Když spustíte program, výstup bude:

 pro (znak v „Hej!“) println (znak)

Přední bílé mezery surového řetězce můžete odstranit pomocí funkce trimMargin (). Například,

Příklad: Tisk surového řetězce

 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()) ) 

Když spustíte program, výstup bude:

Výstup bez použití funkce trimMargin: | Kotlin je zajímavý. | Kotlin je sponzorován a vyvinut společností JetBrains. Výstup pomocí funkce trimMargin: Kotlin je zajímavý. Kotlin je sponzorován a vyvíjen společností JetBrains.

Ve výchozím nastavení trimMargin()používá funkce | jako předpona okraje. Můžete jej však změnit předáním nového řetězce této funkci.

Příklad: trimMargin () s argumentem

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

Když spustíte program, výstup bude:

Kotlin je zajímavý. Kotlin je sponzorován a vyvíjen společností JetBrains.

Řetězcové šablony Kotlin

Kotlin má úžasnou funkci nazvanou šablony šablon, která umožňuje řetězcům obsahovat výrazy šablon.

Výraz šablony řetězce začíná znakem dolaru $. Zde je několik příkladů:

Příklad: Kotlin String Template

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

Když spustíte program, výstup bude:

 myInt = 5

Je to proto, že výraz $ myInt (výraz začínající znakem $) uvnitř řetězce je vyhodnocen a zřetězen do řetězce.

Příklad: Šablona řetězce se surovým řetězcem

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

Když spustíte program, výstup bude:

 Větší číslo je: 6 

Několik vlastností a funkcí řetězce

Protože literály v Kotlin jsou implementovány jako instance Stringtřídy, můžete použít několik metod a vlastností této třídy.

  • length vlastnost - vrací délku znakové sekvence řetězce.
  • 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:

Délka řetězce s1 je 10. Řetězce s1 a s2 jsou stejné. Třetí znak je y. výsledek = Ahoj! Jak se máš? Podřetězec je „the“

Navštivte třídu Kotlin String, kde najdete další informace o vlastnostech rozšíření, rozšíření, funkcích a konstruktorech.

Zajímavé články...