In this tutorial, you shall learn how to sort an array of strings based on their length in Kotlin, using Array.sortBy() method, with examples.

Kotlin Sort array of strings based on length

To sort an Array of Strings based on its length property in Kotlin, use Array.sortBy() method. sortBy() method sorts the calling array in-place in ascending order based on the selector passed as argument.

Syntax

The syntax to call sortBy() method on Array arr is

arr.sortBy(selector: (T) -> (R))

The selector function takes element as argument and returns a value which is used for comparison between elements.

Examples

In the following example, we take an array of strings, and sort them in ascending order in-place based on length using sortBy() method.

Main.kt

fun main(args: Array<String>) {
    val arr = arrayOf("banana", "kiwi", "apple")
    val selector: (String) -> Int = { str -> str.length }
    arr.sortBy(selector)
    for (x in arr) print("$x  ")
}

Output

kiwi  apple  banana

We can also specify the selector function directly as shown in the following program.

Main.kt

fun main(args: Array<String>) {
    val arr = arrayOf("banana", "kiwi", "apple")
    arr.sortBy { it.length }
    for (x in arr) print("$x  ")
}

Output

kiwi  apple  banana

Conclusion

In this Kotlin Tutorial, we learned how to sort a String Array based on string length using sortBy() method, with examples.