Kotlin String lastIndexOf

The lastIndexOf function in Kotlin is used to find the index of the last occurrence of a specified substring or character within a string. This function belongs to the String class in the Kotlin standard library and provides a straightforward way to search for substrings or characters from the end of the string.

Table of Contents

  1. Introduction
  2. lastIndexOf Function Syntax
  3. Understanding lastIndexOf
  4. Examples
    • Basic Usage
    • Using lastIndexOf with Ignore Case
    • Finding a Character from a Specific Start Index
  5. Real-World Use Case
  6. Conclusion

Introduction

The lastIndexOf function searches for the last occurrence of a specified substring or character within a string and returns its index. If the substring or character is not found, the function returns -1.

lastIndexOf Function Syntax

The syntax for the lastIndexOf function is as follows:

fun String.lastIndexOf(char: Char, startIndex: Int = this.length - 1, ignoreCase: Boolean = false): Int
fun String.lastIndexOf(string: String, startIndex: Int = this.length - 1, ignoreCase: Boolean = false): Int

Parameters:

  • char: The character to search for.
  • string: The substring to search for.
  • startIndex: The index to start the search backward from (default is the end of the string).
  • ignoreCase: If true, the search will ignore case differences (default is false).

Returns:

  • The index of the last occurrence of the specified substring or character, or -1 if it is not found.

Understanding lastIndexOf

The lastIndexOf function performs a reverse search within the string for the specified substring or character. The search can start from a specified index and can be case-insensitive if desired.

Examples

Basic Usage

To demonstrate the basic usage of lastIndexOf, we will search for a character and a substring within a string.

Example

fun main() {
    val text = "Hello, World! Hello, Kotlin!"
    val lastIndexChar = text.lastIndexOf('o')
    val lastIndexString = text.lastIndexOf("Hello")

    println("Last index of 'o': $lastIndexChar")
    println("Last index of 'Hello': $lastIndexString")
}

Output:

Last index of 'o': 20
Last index of 'Hello': 14

Using lastIndexOf with Ignore Case

This example shows how to use the ignoreCase parameter for case-insensitive search.

Example

fun main() {
    val text = "Hello, World! hello, Kotlin!"
    val lastIndexCaseInsensitive = text.lastIndexOf("hello", ignoreCase = true)

    println("Last index of 'hello' (ignore case): $lastIndexCaseInsensitive")
}

Output:

Last index of 'hello' (ignore case): 14

Finding a Character from a Specific Start Index

This example demonstrates how to search for a character starting from a specific index.

Example

fun main() {
    val text = "Hello, World! Hello, Kotlin!"
    val lastIndexFromStart = text.lastIndexOf('o', startIndex = 10)

    println("Last index of 'o' from index 10: $lastIndexFromStart")
}

Output:

Last index of 'o' from index 10: 4

Real-World Use Case

Searching for a Substring in a Log Message

In real-world applications, the lastIndexOf function can be used to search for specific substrings within log messages, such as finding the last occurrence of a keyword.

Example

fun main() {
    val logMessage = "INFO: Task started. ERROR: Task failed. INFO: Task started again. ERROR: Task failed again."
    val lastErrorIndex = logMessage.lastIndexOf("ERROR")

    if (lastErrorIndex != -1) {
        println("Last ERROR found at index: $lastErrorIndex")
    } else {
        println("No ERROR found.")
    }
}

Output:

Last ERROR found at index: 49

Conclusion

The lastIndexOf function in Kotlin's String class is a versatile method for finding the index of the last occurrence of a specified substring or character within a string. It provides a simple way to perform reverse search operations for various use cases, including validation, substring extraction, and log analysis. 

By understanding and using this function, you can effectively manage reverse string search operations in your Kotlin applications.

Comments