V tomto článku sa pomocou príkladov dozviete o reťazcoch Kotlin, šablónach reťazcov a niekoľkých bežne používaných vlastnostiach a funkciách reťazcov.
Kotlin String
Reťazce sú postupnosťou znakov. Napríklad "Hello there!"
je to reťazcový literál.
V Kotline sú všetky reťazce objektmi String
triedy. To znamená, že "Hello there!"
ako inštancie tejto triedy sú implementované reťazcové literály, ako sú.
Ako vytvoriť reťazcovú premennú?
Takto môžete definovať String
premennú v Kotline. Napríklad,
val myString = "Ahoj!"
MyString je tu premenná typu String
.
Môžete deklarovať premennú typu String
a určiť jej typ v jednom príkaze a premennú inicializovať v inom príkaze neskôr v programe.
val myString: Reťazec … myString = "Ahoj"
Ako získať prístup k znakom reťazca?
Na prístup k prvkom (znaku) reťazca sa používa operátor indexového prístupu. Napríklad,
val myString = "Ahoj!" položka valca = myString (2)
Premenná položky tu obsahuje y, tretí znak reťazca myString. Je to preto, že indexovanie v Kotline začína od 0, nie od 1.
val myString = "Ahoj!" var item: Char item = myString (0) // položka obsahuje „H“ položka = myString (9) // položka obsahuje „!“ item = myString (10) // Chyba! Reťazcový index je mimo rozsahu item = myString (-1) // Chyba! Reťazcový index je mimo rozsahu
Príklad: Iterácia cez reťazec
Ak potrebujete iterovať pomocou prvkov reťazca, môžete to ľahko urobiť pomocou slučky for.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Po spustení programu bude výstup:
H e y !
Reťazce v Kotline sú nezmeniteľné
Rovnako ako Java, aj reťazce sú v Kotline nemenné. To znamená, že nemôžete meniť jednotlivé znaky reťazca. Napríklad,
var myString = "Hej!" myString (0) = 'h' // Chyba! Struny
Reťazcovú premennú však môžete znova priradiť, ak ste ju deklarovali pomocou kľúčového slova var
. ( Odporúčané čítanie : Kotlin var vs val)
Príklad: Opätovné priradenie reťazcovej premennej.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Po spustení programu bude výstup:
myString = Hej! myString = Dobrý deň!
Sláčikové literály
Literál je vyjadrenie zdrojového kódu pevnej hodnoty. Ide napríklad "Hey there!"
o reťazcový literál, ktorý sa zobrazuje priamo v programe bez potreby výpočtu (napríklad premenných).
V Kotline existujú dva typy reťazcových literálov:
1. Uniknutý reťazec
Reťazec s kódovaním zvláštnych znakov mohol obsahovať znaky, ktoré boli v nich uvedené. Napríklad,
val myString = "Ahoj! n"
Tu je únikový znak, ktorý vloží nový riadok do textu, kde sa nachádza.
Tu je zoznam únikových znakov podporovaných v Kotline:
- Vloží backspace
- Vloží nový riadok
- Vloží návrat vozíka
\'
- Vloží znak jednej úvodzovky"
- Vloží znak dvojitej úvodzovky\
- Vloží spätné lomítko$
- Vloží znak dolára
2. Surová struna
Nespracovaný reťazec môže obsahovať nové riadky (nie nový riadok) a ľubovoľný text. Nespracovaný reťazec je ohraničený trojitým citátom """
. Napríklad,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Po spustení programu bude výstup:
pre (znak v „Hej!“) println (znak)
Predné biele medzery surového reťazca môžete odstrániť pomocou funkcie trimMargin (). Napríklad,
Príklad: Tlač surového reťazca
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()) )
Po spustení programu bude výstup:
Výstup bez použitia funkcie trimMargin: | Kotlin je zaujímavý. | Kotlin je sponzorovaný a vyvinutý spoločnosťou JetBrains. Výstup pomocou funkcie trimMargin: Kotlin je zaujímavý. Kotlin je sponzorovaný a vyvinutý spoločnosťou JetBrains.
V predvolenom nastavení trimMargin()
funkcia používa | ako predpona okraja. Môžete to však zmeniť odovzdaním nového reťazca tejto funkcii.
Príklad: trimMargin () s argumentom
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Po spustení programu bude výstup:
Kotlin je zaujímavý. Kotlin je sponzorovaný a vyvinutý spoločnosťou JetBrains.
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 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ĺžka reťazca s1 je 10. Reťazce s1 a s2 sú rovnaké. Tretím znakom je y. výsledok = Ahoj! Ako sa máš? Podreťazec je „the“
Navštívte triedu Kotlin String, kde získate ďalšie informácie o vlastnostiach rozšírenia, rozšírení, funkciách a konštruktoroch.