V tem članku boste s pomočjo primerov spoznali nize Kotlin, predloge nizov in nekaj pogosto uporabljenih lastnosti in funkcij nizov.
Kotlinska struna
Strune so zaporedje znakov. Na primer, "Hello there!"
je niz literal.
V Kotlinu so vsi nizi predmeti String
razreda. Pomen, nizovne dobesedne črke, kot "Hello there!"
so implementirane kot primerki tega razreda.
Kako ustvariti spremenljivko String?
Tukaj je String
opisano, kako lahko v Kotlinu definirate spremenljivko. Na primer
val myString = "Hej!"
Tu je myString spremenljivka tipa String
.
Spremenljivko tipa lahko deklarirate String
in določite njen tip v enem stavku, spremenljivko pa inicializirate v drugem stavku kasneje v programu.
val myString: String … myString = "Zdravo"
Kako dostopati do znakov niza?
Za dostop do elementov (znakov) niza se uporablja operator dostopa do indeksa. Na primer
val myString = "Hej!" val element = myString (2)
Tu spremenljivka postavke vsebuje y, tretji znak niza myString. To je zato, ker se indeksiranje v Kotlinu začne od 0 do 1.
val myString = "Hej!" var item: Char item = myString (0) // element vsebuje 'H' item = myString (9) // element vsebuje '!' item = myString (10) // Napaka! Indeks niza je izven obsega item = myString (-1) // Napaka! Indeks nizov je izven obsega
Primer: Iteracija skozi niz
Če morate itirirati po elementih niza, lahko to enostavno storite z uporabo zanke for.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Ko zaženete program, bo rezultat:
H e y !
Strune v Kotlinu so nespremenljive
Tako kot Java so tudi v Kotlinu nizi nespremenljivi. To pomeni, da ne morete spremeniti posameznega znaka niza. Na primer
var myString = "Hej!" myString (0) = 'h' // Napaka! Strune
Vendar lahko spremenljivko niza znova dodelite, če ste spremenljivko razglasili s ključno besedo var
. ( Priporočeno branje : Kotlin var Vs val)
Primer: prerazporeditev spremenljivke niza.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Ko zaženete program, bo rezultat:
myString = Hej! myString = Pozdravljeni!
String Literals
Dobesedno besedilo je predstavitev izvorne kode fiksne vrednosti. Na primer, "Hey there!"
je niz literal, ki se pojavi neposredno v programu, ne da bi bilo treba izračunati (na primer spremenljivke).
V Kotlinu obstajata dve vrsti nizovnih literal:
1. Pobegla vrvica
Ubežajoči niz je lahko v njih ubežal znake. Na primer
val myString = "Hej! n"
Tu je ubežni znak, ki vstavi novo vrstico v besedilo, kjer se pojavi.
Tu je seznam ubežnih znakov, ki jih podpira Kotlin:
- Vstavi backspace
- Vstavi novo vrstico
- Vstavi vrnitev kočije
\'
- Vstavi znak z enim narekovajem"
- Vstavi znak z dvojnimi narekovaji\
- Vstavi poševnico nazaj$
- Vstavi dolarski znak
2. Surovi niz
Neobdelani niz lahko vsebuje nove vrstice (ne novi ubežni znak) in poljubno besedilo. Neobdelani niz je razmejen s trojnim narekovajem """
. Na primer
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Ko zaženete program, bo rezultat:
za (znak v "Hej!") println (znak)
Vodilne presledke surovega niza lahko odstranite s funkcijo trimMargin (). Na primer
Primer: Tiskanje surovega 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()) )
Ko zaženete program, bo rezultat:
Izhod brez uporabe funkcije trimMargin: | Kotlin je zanimiv. | Kotlin sponzorira in razvija JetBrains. Izhod s funkcijo trimMargin: Kotlin je zanimiv. Kotlin sponzorira in razvija JetBrains.
trimMargin()
Funkcija privzeto uporablja | kot predpona roba. Lahko pa ga spremenite tako, da tej funkciji posredujete nov niz.
Primer: trimMargin () z Argument
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Ko zaženete program, bo rezultat:
Kotlin je zanimiv. Kotlin sponzorira in 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:
Dolžina niza s1 je 10. Struni s1 in s2 sta enaki. Tretji znak je y. rezultat = Hej! Kako si Podniz je "the"
Obiščite razred Kotlin String za več informacij o lastnostih razširitev, razširitvah, funkcijah in konstruktorjih.