U ovom ćete članku uz primjere naučiti o Kotlinovim žicama, predlošcima nizova i nekoliko često korištenih svojstava i funkcija niza.
Kotlinov niz
Nizovi su niz znakova. Na primjer, "Hello there!"
je string literal.
U Kotlinu su svi nizovi objekti String
klase. Znači, string literali kao što "Hello there!"
su implementirani kao primjerci ove klase.
Kako stvoriti varijablu String?
Evo kako možete definirati String
varijablu u Kotlinu. Na primjer,
val myString = "Hej!"
Ovdje je myString varijabla tipa String
.
Možete deklarirati varijablu tipa String
i odrediti njen tip u jednom izrazu, a varijablu inicijalizirati u drugom izrazu kasnije u programu.
val myString: Niz … myString = "Zdravo"
Kako pristupiti likovima niza?
Za pristup elementima (znaku) niza koristi se indeksni operator pristupa. Na primjer,
val myString = "Hej!" val stavka = myString (2)
Ovdje varijabla item sadrži y, treći znak niza myString. To je zato što indeksiranje u Kotlinu počinje od 0, a ne od 1.
val myString = "Hej!" var stavka: Char stavka = myString (0) // stavka sadrži 'H' stavku = myString (9) // stavka sadrži '!' item = myString (10) // Pogreška! Indeks niza je izvan raspona item = myString (-1) // Pogreška! Indeks niza izvan je raspona
Primjer: Iteracija kroz niz
Ako trebate prelistati elemente niza, to možete jednostavno učiniti pomoću for petlje.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Kada pokrenete program, izlaz će biti:
H e y !
Žice u Kotlinu su nepromjenjive
Kao i Java, nizovi su u Kotlinu nepromjenjivi. To znači da ne možete promijeniti pojedinačni karakter niza. Na primjer,
var myString = "Hej!" myString (0) = 'h' // Pogreška! Žice
Međutim, varijablu niza možete ponovno dodijeliti ako ste varijablu deklarirali pomoću ključne riječi var
. ( Preporučena literatura : Kotlin var Vs val)
Primjer: Ponovno dodjeljivanje string varijable.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Kada pokrenete program, izlaz će biti:
myString = Hej! myString = Pozdrav!
String Literals
Doslovno je predstavljanje izvornog koda fiksne vrijednosti. Na primjer, "Hey there!"
je string literal koji se pojavljuje izravno u programu bez potrebe za izračunavanjem (poput varijabli).
Postoje dvije vrste string literala u Kotlinu:
1. Izbjegli niz
Izbjegli niz možda je u njima prebjegao znakove. Na primjer,
val myString = "Zdravo! n"
Ovdje je znak za bijeg koji u tekst ubacuje novi red tamo gdje se pojavljuje.
Evo popisa znakova za bijeg koji su podržani u Kotlinu:
- Ubacuje backspace
- Umeće novi red
- Umeće povratak kočije
\'
- Ubacuje jedan navodnik"
- Umeta znak dvostrukih navodnika\
- Umeta kosu crtu$
- Ubacuje dolarski znak
2. Sirovi niz
Neobrađeni niz može sadržavati nove retke (ne novi znak za bijeg reda) i proizvoljan tekst. Sirovi niz odvojen je trostrukim navodnikom """
. Na primjer,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Kada pokrenete program, izlaz će biti:
za (znak u "Hej!") println (znak)
Vodeće razmake sirovog niza možete ukloniti pomoću funkcije trimMargin (). Na primjer,
Primjer: Ispis sirovog niza
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()) )
Kada pokrenete program, izlaz će biti:
Izlaz bez upotrebe funkcije trimMargin: | Kotlin je zanimljiv. | Kotlin sponzorira i razvija JetBrains. Izlaz pomoću funkcije trimMargin: Kotlin je zanimljiv. Kotlin sponzorira i razvija JetBrains.
Prema zadanim postavkama trimMargin()
funkcija koristi | kao prefiks margine. Međutim, možete ga promijeniti dodavanjem novog niza ovoj funkciji.
Primjer: trimMargin () s Argumentom
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Kada pokrenete program, izlaz će biti:
Kotlin je zanimljiv. Kotlin sponzorira i razvija 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:
Duljina s1 niza je 10. Žice s1 i s2 su jednake. Treći znak je y. rezultat = Hej tamo! Kako si? Podniz je "the"
Posjetite klasu Kotlin String za više informacija o svojstvima proširenja, proširenju, funkcijama i konstruktorima.