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 Stringtriedy. 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ť Stringpremennú v Kotline. Napríklad,
val myString = "Ahoj!"
MyString je tu premenná typu String.
Môžete deklarovať premennú typu Stringa 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:
- karta Vložky- 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.
lengthproperty - returns the length of character sequence of an string.compareTofunction - compares this String (object) with the specified object. Returns 0 if the object is equal to the specfied object.getfunction - returns character at the specified index.
You can use index access operator instead ofgetfunction as index access operator internally callsgetfunction.plusfunction - 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 ofplusfunction as+operator callsplusfunction under the hood.subSequenceFunction - 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.








