I den här artikeln lär du dig om Kotlin-strängar, strängmallar och några vanliga strängegenskaper och funktioner med hjälp av exempel.
Kotlin-sträng
Strängar är en sekvens av tecken. Till exempel "Hello there!"är en sträng bokstavlig.
I Kotlin är alla strängar klassobjekt String. Betydelse, stränglitterärer som "Hello there!"implementeras som instanser av denna klass.
Hur skapar jag en strängvariabel?
Här är hur du kan definiera en Stringvariabel i Kotlin. Till exempel,
val myString = "Hej där!"
Här är myString en variabel av typen String.
Du kan deklarera typvariabel Stringoch ange dess typ i ett uttalande och initialisera variabeln i ett annat uttalande senare i programmet.
val myString: String … myString = "Howdy"
Hur får jag tillgång till tecken i en sträng?
För att komma åt element (tecken) i en sträng används indexåtkomstoperatör. Till exempel,
val myString = "Hej där!" val artikel = myString (2)
Här innehåller artikelvariabel y, tredje tecknet i myString-strängen. Det beror på att indexering i Kotlin börjar från 0 och inte 1.
val myString = "Hej där!" var item: Char item = myString (0) // objektet innehåller 'H' objekt = myString (9) // objektet innehåller '!' artikel = myString (10) // Fel! Strängindex är utanför intervallet artikel = myString (-1) // Fel! Strängindex är utanför intervallet
Exempel: Iterera genom en sträng
Om du behöver itera igenom element i en sträng kan du göra det enkelt med en for-loop.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
När du kör programmet blir resultatet:
H e y !
Strängar i Kotlin är oföränderliga
Liksom Java är strängar oföränderliga i Kotlin. Det betyder att du inte kan ändra en strängs individuella karaktär. Till exempel,
var myString = "Hej!" myString (0) = 'h' // Fel! Strängar
Du kan dock tilldela en strängvariabel om igen om du förklarade variabeln med hjälp av nyckelordet var. ( Rekommenderad läsning : Kotlin var Vs val)
Exempel: Tilldela en strängvariabel om.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
När du kör programmet blir resultatet:
myString = Hej! myString = Hej!
Stränglitteratur
En bokstav är källkodsrepresentationen för ett fast värde. Till exempel "Hey there!"är en stränglitteratur som visas direkt i ett program utan att beräkning krävs (som variabler).
Det finns två typer av stränglitterärer i Kotlin:
1. Flyktsträng
En rymd sträng kan ha rymt tecken i dem. Till exempel,
val myString = "Hej där! n"
Här är en flykt karaktär som infogar en ny rad i texten där den visas.
Här är en lista över flyktecken som stöds i Kotlin:
- Fliken Inserts- Infogar baksteg- Infogar ny linje- Sätter in vagnretur\'- Infogar enstaka citattecken"- Infogar dubbelt citattecken\- Infogar snedstreck$- Infogar dollartecken
2. Rå sträng
En rå sträng kan innehålla nya rader (inte ny radtecken) och godtycklig text. En rå sträng avgränsas av en trippel offert """. Till exempel,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
När du kör programmet blir resultatet:
för (tecken i "Hej!") println (tecken)
Du kan ta bort de ledande vita utrymmena i en rå sträng med funktionen trimMargin (). Till exempel,
Exempel: Utskrift av rå sträng
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()) )
När du kör programmet blir resultatet:
Output utan att använda trimMargin-funktionen: | Kotlin är intressant. | Kotlin sponsras och utvecklas av JetBrains. Output med trimMargin-funktion: Kotlin är intressant. Kotlin sponsras och utvecklas av JetBrains.
Som standard trimMargin()använder funktionen | som marginalprefix. Du kan dock ändra det genom att skicka en ny sträng till den här funktionen.
Exempel: trimMargin () med Argument
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
När du kör programmet blir resultatet:
Kotlin är intressant. Kotlin sponsras och utvecklas av 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:
Längden på s1-strängen är 10. Strängarna s1 och s2 är lika. Tredje karaktären är y. resultat = Hej där! Hur mår du? Substring är "den"
Besök Kotlin String-klassen för mer information om förlängningsegenskaper, tillägg, funktioner och konstruktörer.








