Tässä artikkelissa opit Kotlin-merkkijonoista, merkkijonoista ja harvoista yleisesti käytetyistä merkkijono-ominaisuuksista ja -toiminnoista esimerkkien avulla.
Kotlin-kieli
Merkkijonot ovat merkkijono. Esimerkiksi "Hello there!"
on merkkijono kirjaimellinen.
Kotlinissa kaikki jouset ovat String
luokan esineitä . Merkitys, merkkijono-literaalit, "Hello there!"
jotka toteutetaan tämän luokan esiintyminä.
Kuinka luoda String-muuttuja?
Näin voit määrittää String
muuttujan Kotlinissa. Esimerkiksi,
val myString = "Hei siellä!"
Tässä myString on tyypin muuttuja String
.
Voit julistaa muuttujan tyypiksi String
ja määrittää sen tyypin yhdessä lauseessa ja alustaa muuttujan toisessa käskyssä myöhemmin ohjelmassa.
val myString: Merkkijono … myString = "Howdy"
Kuinka käyttää merkkijonon merkkejä?
Merkkijonon elementtien (merkin) käyttämiseen käytetään indeksin käyttöoperaattoria. Esimerkiksi,
val myString = "Hei siellä!" val item = myString (2)
Tässä nimikemuuttuja sisältää y, myString-merkkijonon kolmannen merkin. Se johtuu siitä, että indeksointi Kotlinissa alkaa 0: sta eikä 1: stä.
val myString = "Hei siellä!" var item: Char item = myString (0) // item sisältää 'H' item = myString (9) // item sisältää '!' item = myString (10) // Virhe! Merkkijonoindeksi on alueen ulkopuolella = myString (-1) // Virhe! Merkkijonoindeksi on alueen ulkopuolella
Esimerkki: Toista merkkijono
Jos haluat toistaa merkkijonon elementtien läpi, voit tehdä sen helposti käyttämällä for-silmukkaa.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Kun suoritat ohjelmaa, tulos on:
H e y !
Kotlinin kielet ovat muuttumattomia
Javan tavoin jouset ovat muuttumattomia Kotlinissa. Tämä tarkoittaa, että et voi muuttaa merkkijonon yksittäistä merkkiä. Esimerkiksi,
var myString = "Hei!" myString (0) = 'h' // Virhe! Jouset
Voit kuitenkin määrittää merkkijonomuuttujan uudelleen, jos ilmoitit muuttujan avainsanalla var
. ( Suositeltava lukeminen : Kotlin var Vs val)
Esimerkki: Merkkijonomuuttujan määrittäminen uudelleen.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Kun suoritat ohjelmaa, tulos on:
myString = Hei! myString = Hei!
Jousisoitetut literaalit
Kirjaimellinen on kiinteän arvon lähdekoodiesitys. Esimerkiksi "Hey there!"
on merkkijonolitraali, joka näkyy suoraan ohjelmassa ilman laskentaa (kuten muuttujia).
Kotlinissa on kahdenlaisia merkkijono-literaaleja:
1. Pakenut merkkijono
Pakenut merkkijono on saattanut välttää merkkejä niissä. Esimerkiksi,
val myString = "Hei siellä! n"
Tässä on pakomerkki, joka lisää uuden rivin tekstiin, missä se näkyy.
Tässä on luettelo Kotlinissa tuetuista pakomerkkeistä:
- Lisää askelpalautin
- Lisää uuden rivin
- Lisää kuljetusvaunun
\'
- Lisää yhden lainausmerkin"
- Lisää kaksoislainausmerkin\
- Lisää taaksepäin$
- Lisää dollarimerkin
2. Raaka merkkijono
Raaka merkkijono voi sisältää uusia rivejä (ei uutta rivinvaihtomerkkiä) ja mielivaltaista tekstiä. Raaka merkkijono on rajattu kolminkertaisella lainauksella """
. Esimerkiksi,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Kun suoritat ohjelmaa, tulos on:
for (merkki "Hei!") println (merkki)
Voit poistaa raakamerkkijonon johtavat välilyönnit trimMargin () -toiminnon avulla. Esimerkiksi,
Esimerkki: Raakajonon tulostaminen
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()) )
Kun suoritat ohjelmaa, tulos on:
Tulos ilman trimMargin-toimintoa: | Kotlin on mielenkiintoinen. | Kotlinia tukee ja kehittää JetBrains. Tulos trimMargin-toiminnolla: Kotlin on mielenkiintoinen. Kotlinia tukee ja kehittää JetBrains.
Oletusarvoisesti trimMargin()
funktio käyttää | marginaalin etuliitteenä. Voit kuitenkin muuttaa sitä siirtämällä uuden merkkijonon tälle toiminnolle.
Esimerkki: trimMargin () argumentilla
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Kun suoritat ohjelmaa, tulos on:
Kotlin on mielenkiintoinen. Kotlinia tukee ja kehittää 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:
Merkkijonon s1 pituus on 10. Merkkijonot s1 ja s2 ovat yhtä suuret. Kolmas merkki on y. tulos = Hei siellä! Mitä kuuluu? Substring on "the"
Käy Kotlin String -luokassa saadaksesi lisätietoja laajennusten ominaisuuksista, laajennuksista, toiminnoista ja rakentajista.