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 String
tří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 String
proměnnou v Kotlin. Například,
val myString = "Hej!"
Zde je myString proměnná typu String
.
Můžete deklarovat proměnnou typu String
a 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:
- 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 String
tří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 ofget
function as index access operator internally callsget
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 ofplus
function as+
operator callsplus
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.