Tutorials References Exercises Videos Menu
Create Website Get Certified Upgrade

Kotlin Strings


Kotlin Strings

Strings are used for storing text.

A string contains a collection of characters surrounded by double quotes:

Example

var greeting = "Hello"
Try it Yourself »

Unlike Java, you do not have to specify that the variable should be a String. Kotlin is smart enough to understand that the greeting variable in the example above is a String because of the double quotes.

However, just like with other data types, you can specify the type if you insist:

Example

var greeting: String = "Hello"
Try it Yourself »

Note: If you want to create a String without assigning the value (and assign the value later), you must specify the type while declaring the variable:

Example

This works fine:

var name: String
name = "John"
println(name)
Try it Yourself »

Example

This will generate an error:

var name
name = "John"
println(name)
Try it Yourself »

Access a String

To access the characters (elements) of a string, you must refer to the index number inside square brackets.

String indexes start with 0. In the example below, we access the first and third element in txt:

Example

var txt = "Hello World"
println(txt[0]) // first element (H)
println(txt[2]) // third element (l)
Try it Yourself »

[0] is the first element. [1] is the second element, [2] is the third element, etc.



String Length

A String in Kotlin is an object, which contain properties and functions that can perform certain operations on strings, by writing a dot character (.) after the specific string variable. For example, the length of a string can be found with the length property:

Example

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
println("The length of the txt string is: " + txt.length)
Try it Yourself »

String Functions

There are many string functions available, for example toUpperCase() and toLowerCase():

Example

var txt = "Hello World"
println(txt.toUpperCase())   // Outputs "HELLO WORLD"
println(txt.toLowerCase())   // Outputs "hello world"
Try it Yourself »

Comparing Strings

The compareTo(string) function compares two strings and returns 0 if both are equal:

Example

var txt1 = "Hello World"
var txt2 = "Hello World" println(txt1.compareTo(txt2))  // Outputs 0 (they are equal)
Try it Yourself »

Finding a String in a String

The indexOf() function returns the index (the position) of the first occurrence of a specified text in a string (including whitespace):

Example

var txt = "Please locate where 'locate' occurs!"
println(txt.indexOf("locate"))  // Outputs 7
Try it Yourself »

Remember that Kotlin counts positions from zero.
0 is the first position in a string, 1 is the second, 2 is the third ...


Quotes Inside a String

To use quotes inside a string, use single quotes ('):

Example

var txt1 = "It's alright"
var txt2 = "That's great"
Try it Yourself »

String Concatenation

The + operator can be used between strings to add them together to make a new string. This is called concatenation:

Example

var firstName = "John"
var lastName = "Doe"
println(firstName + " " + lastName)
Try it Yourself »

Note that we have added an empty text (" ") to create a space between firstName and lastName on print.

You can also use the plus() function to concatenate two strings:

Example

var firstName = "John "
var lastName = "Doe"
println(firstName.plus(lastName))
Try it Yourself »

String Templates/Interpolation

Instead of concatenation, you can also use "string templates", which is an easy way to add variables and expressions inside a string.

Just refer to the variable with the $ symbol:

Example

var firstName = "John"
var lastName = "Doe"
println("My name is $firstName $lastName")
Try it Yourself »

"String Templates" is a popular feature of Kotlin, as it reduces the amount of code. For example, you do not have to specify a whitespace between firstName and lastName, like we did in the concatenation example.