4.3 KiB
title |
---|
Strings |
Strings
A string is a basic data type in a programming language. Strings are represented by the type String
. Strings are immutable. Kotlin has a rich API for working with strings.
Basic Usage
Declaration
// Explicit type declaration
var firstName : String = "Elon"
// or Implicit type declaration and will still compile
val lastName = "Musk"
In addition, notice the usage of val
variable type, here is how it behaves
firstName = "Mark" // can be changed
lastName = "Zuckerberg" // cannot be changed
lastName = 12 // Error: type mismatch
String Concatenation
Shown in the code snippet, just like Java, appending Int
to
String
will result to a String
output
var str = "abc" + 1
println(str + "def")
Output:
abc1def
Even without explicitly converting Int
value 1 to String
object first, the resulting output is still a String
.
Kotlin also supports String templates (expression that starts with dollar sign $) which are preferred to string concatenation.
var a = 1
// simple name in template:
val s1 = "a is $a"
a = 2
// arbitrary expression in template:
val s2 = "${s1.replace("is", "was")}, but now is $a"
String with Multiple Lines
Programmers can declare String
variables with multiple lines by using triple quotes instead of double quotes
var str = """
This is line 1
This is line 2
This is line 3
"""
println(str)
Output:
This is line 1
This is line 2
This is line 3
or with .trimIndent()
The use of trimIndent()
will additionally help to provide a clean output format by removing excess and unnecessary indentions on each line. Examine the code snippet below:
var str = """
This is line 1
This is line 2
This is line 3
""".trimIndent()
println(str)
Output:
This is line 1
This is line 2
This is line 3
Accessing Characters of a String
Index Access
Programmers can access elements (characters) of a string using index access operator:
var str = "Example"
println(str[2])
Output:
a
It's just like accessing an element from an array, you get:
var str = "Example"
println(str[9]) // Error: index out of bounds
Iterate through a String
Elements of a string are characters that can be accessed by the indexing operation: s[i]
.
var str = "Example"
for (c in str) {
println(c)
}
Output:
E
x
a
m
p
l
e
Immutability of a String
Just like Java, you cannot change individual elements of a String
var str = "Example"
str[2] = "b" // Error
Re-assigning String values
var str = "Example"
println(str)
str = "Example was changed"
println(str)
Output:
Example
Example was changed
String Properties
Determining length of a String
var str = "Example"
println(str.length)
Output:
7
String Functions
These are some of the common String
functions available from the current Kotlin version
compareTo
Compares this object with the specified object for order. Returns zero if this object is equal to the specified other object, a negative number if it's less than other, or a positive number if it's greater than other.
var str = "Example"
var str2 = "Example123"
var str3 = "Example12345"
println(str.compareTo(str2))
println(str.compareTo(str3))
println(str3.compareTo(str))
println(str.compareTo("Example"))
Output:
-3
-5
5
0 # Equal
equals
Indicates whether a String
object is exactly equal to another String
object
var str = "Example"
var str2 = "Example2"
println(str.equals("Example"))
println(str2.equals("Example"))
Output:
true
false
get
Returns the character at the specified index in this character sequence.
var str = "Example"
println(str.get(3))
Output:
m
toString
Returns a string representation of the object.
println(9.toString() + 10)
println(9 + 10)
Output:
"910"
19