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 String
variabel i Kotlin. Till exempel,
val myString = "Hej där!"
Här är myString en variabel av typen String
.
Du kan deklarera typvariabel String
och 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:
- 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.
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:
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.