Kotlin string i predlošci stringa (s primjerima)

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 Stringklase. Znači, string literali kao što "Hello there!"su implementirani kao primjerci ove klase.

Kako stvoriti varijablu String?

Evo kako možete definirati Stringvarijablu u Kotlinu. Na primjer,

 val myString = "Hej!"

Ovdje je myString varijabla tipa String.

Možete deklarirati varijablu tipa Stringi 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:

  • - Kartica Umetanja
  •  - 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 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:

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.

Zanimljivi članci...