substring

Returns a substring specified by the given range of indices.

Since Kotlin

1.0

inline fun CharSequence.substring(startIndex: Int, endIndex: Int = length): String(source)

Returns a substring of chars from a range of this char sequence starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.0

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive). If not specified, the length of the char sequence is used.


Returns a substring of chars at indices from the specified range of this char sequence.

Since Kotlin

1.0

expect fun String.substring(startIndex: Int): String(source)

Returns a substring of this string that starts at the specified startIndex and continues to the end of the string.

Since Kotlin

1.0

Parameters

startIndex

the start index (inclusive).

Throws

when startIndex is negative or exceeds the length if the string.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0)) // abcde
println(str.substring(1)) // bcde
// startIndex exceeds the string length
// str.substring(6) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}

expect fun String.substring(startIndex: Int, endIndex: Int): String(source)

Returns the substring of this string starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.0

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive).

Throws

when startIndex is negative, endIndex exceeds the length if the string, or if startIndex is greater than endIndex.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0, 0)) // 
println(str.substring(0, 1)) // a
println(str.substring(5, 5)) // 
// endIndex exceeds string length
// str.substring(0, 6) // will fail with IndexOutOfBoundsException
// endIndex is smaller than the startIndex
// str.substring(1, 0) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}
actual fun String.substring(startIndex: Int): String(source)
actual fun String.substring(startIndex: Int, endIndex: Int): String(source)

Since Kotlin

1.1
actual inline fun String.substring(startIndex: Int): String(source)

Returns a substring of this string that starts at the specified startIndex and continues to the end of the string.

Since Kotlin

1.0

Parameters

startIndex

the start index (inclusive).

Throws

when startIndex is negative or exceeds the length if the string.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0)) // abcde
println(str.substring(1)) // bcde
// startIndex exceeds the string length
// str.substring(6) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}

actual inline fun String.substring(startIndex: Int, endIndex: Int): String(source)

Returns the substring of this string starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.0

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive).

Throws

when startIndex is negative, endIndex exceeds the length if the string, or if startIndex is greater than endIndex.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0, 0)) // 
println(str.substring(0, 1)) // a
println(str.substring(5, 5)) // 
// endIndex exceeds string length
// str.substring(0, 6) // will fail with IndexOutOfBoundsException
// endIndex is smaller than the startIndex
// str.substring(1, 0) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}
actual inline fun String.substring(startIndex: Int): String(source)

Returns a substring of this string that starts at the specified startIndex and continues to the end of the string.

Since Kotlin

1.3

Parameters

startIndex

the start index (inclusive).

Throws

when startIndex is negative or exceeds the length if the string.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0)) // abcde
println(str.substring(1)) // bcde
// startIndex exceeds the string length
// str.substring(6) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}

actual inline fun String.substring(startIndex: Int, endIndex: Int): String(source)

Returns the substring of this string starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.3

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive).

Throws

when startIndex is negative, endIndex exceeds the length if the string, or if startIndex is greater than endIndex.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0, 0)) // 
println(str.substring(0, 1)) // a
println(str.substring(5, 5)) // 
// endIndex exceeds string length
// str.substring(0, 6) // will fail with IndexOutOfBoundsException
// endIndex is smaller than the startIndex
// str.substring(1, 0) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}
actual fun String.substring(startIndex: Int): String(source)

Returns a substring of this string that starts at the specified startIndex and continues to the end of the string.

Since Kotlin

1.8

Parameters

startIndex

the start index (inclusive).

Throws

when startIndex is negative or exceeds the length if the string.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0)) // abcde
println(str.substring(1)) // bcde
// startIndex exceeds the string length
// str.substring(6) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}

actual fun String.substring(startIndex: Int, endIndex: Int): String(source)

Returns the substring of this string starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.8

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive).

Throws

when startIndex is negative, endIndex exceeds the length if the string, or if startIndex is greater than endIndex.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0, 0)) // 
println(str.substring(0, 1)) // a
println(str.substring(5, 5)) // 
// endIndex exceeds string length
// str.substring(0, 6) // will fail with IndexOutOfBoundsException
// endIndex is smaller than the startIndex
// str.substring(1, 0) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}
actual fun String.substring(startIndex: Int): String(source)

Returns a substring of this string that starts at the specified startIndex and continues to the end of the string.

Since Kotlin

1.8

Parameters

startIndex

the start index (inclusive).

Throws

when startIndex is negative or exceeds the length if the string.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0)) // abcde
println(str.substring(1)) // bcde
// startIndex exceeds the string length
// str.substring(6) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}

actual fun String.substring(startIndex: Int, endIndex: Int): String(source)

Returns the substring of this string starting at the startIndex and ending right before the endIndex.

Since Kotlin

1.8

Parameters

startIndex

the start index (inclusive).

endIndex

the end index (exclusive).

Throws

when startIndex is negative, endIndex exceeds the length if the string, or if startIndex is greater than endIndex.

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   val str = "abcde"
println(str.substring(0, 0)) // 
println(str.substring(0, 1)) // a
println(str.substring(5, 5)) // 
// endIndex exceeds string length
// str.substring(0, 6) // will fail with IndexOutOfBoundsException
// endIndex is smaller than the startIndex
// str.substring(1, 0) // will fail with IndexOutOfBoundsException 
   //sampleEnd
}