Kotlin String filterTo()

Kotlin String filterTo() Tutorial

The String.filterTo() function in Kotlin is used to filter characters from a string based on a given predicate and add the results to a destination variable. It filters the characters based on the specified condition and appends the results to the provided destination variable.

In this tutorial, we’ll explore the syntax of the filterTo() function and provide examples of its usage in Kotlin strings.

Syntax

The syntax of the filterTo() function is as follows:

fun String.filterTo(
    destination: C,
    predicate: (Char) -> Boolean
): C

where

ParameterDescription
destinationThe destination to which the filtered characters are added.
predicateA function that defines the condition for filtering characters. It takes a character as an argument and returns true for characters to be included and false for characters to be excluded.
Parameters of String.filterTo() function

The predicate parameter is a function that determines whether a character should be included in the resulting value. The function returns true for characters that meet the specified condition and false for those that do not. The filtered characters are then added to the specified destination collection.

Examples for String filterTo() function

1. Filter Vowels from String to a StringBuilder

In this example, we’ll use filterTo() to filter out vowels from a string and add the vowel characters to a destination StringBuilder.

  1. Take a string value in originalString.
  2. Create an empty StringBuilder as the destination collection, e.g., vowelString.
  3. Define a predicate function that returns true for vowels and false for non-vowel characters.
  4. Call filterTo() function on originalString with the destination and predicate function as arguments. The function adds vowel characters to the destination.
  5. You may print the resulting destination to the console output.

Kotlin Program

fun main() {
    val originalString = "Hello World"

    // Create an empty StringBuilder as the destination
    val vowelString = StringBuilder()

    // Defining a predicate to filter vowels
    val predicate: (Char) -> Boolean = { it in "aeiouAEIOU" }

    // Using filterTo() to filter only vowels from the original string and add to the destination
    originalString.filterTo(vowelString, predicate)

    // Printing the original string and the resulting destination
    println("Original String:\n$originalString\n")
    println("Vowel String :\n$vowelString")
}

Output

Original String:
Hello World

Vowel String :
eoo

2. Filter Digits in String to a Destination Variables

In this example, we’ll use filterTo() to filter out digits from a string and add the digit characters to a destination variable.

  1. Take a string value in text.
  2. Create an empty StringBuilder as the destination collection, e.g., digitCharacters.
  3. Define a predicate function that returns true for digits and false for non-digit characters.
  4. Call filterTo() function on text with the destination and predicate function as arguments. The function adds digit characters to the destination.
  5. You may print the resulting destination to the console output.

Kotlin Program

fun main() {
    val originalString = "Hello 123 World 456"

    // Create an empty StringBuilder as the destination
    val digitCharacters = StringBuilder()

    // Defining a predicate to filter digits
    val predicate: (Char) -> Boolean = { it.isDigit() }

    // Using filterTo() to filter only digits from the original string and add to the destination
    originalString.filterTo(digitCharacters, predicate)

    // Printing the original string and the resulting destination
    println("Original String:\n$originalString\n")
    println("Digits :\n$digitCharacters")
}

Output

Original String:
Hello 123 World 456

Digits :
123456

Summary

In this tutorial, we’ve covered the filterTo() function in Kotlin strings, its syntax, and how to use it to filter characters based on a specified condition and add it to a destination variable