Функция replaceRange

Функция replaceRange заменяет часть строки в указанном диапазоне индексов на новую подстроку. Принимает начальный и конечный индексы диапазона для замены, а также строку, на которую нужно заменить указанный фрагмент.

Синтаксис

kotlinfun String.replaceRange(
  startIndex: Int,
  endIndex: Int,
  replacement: CharSequence
): String
kotlinfun String.replaceRange(
  range: IntRange,
  replacement: CharSequence
): String

Пример

Заменим часть строки "abcdef" с индексами от 1 до 4 на подстроку "123":

kotlinval str = "abcdef"
val res = str.replaceRange(1, 4, "123")
println(res)

Результат выполнения кода:

kotlinString "a123ef"

Пример

Использование диапазона IntRange для замены части строки:

kotlinval str = "abcdef"
val res = str.replaceRange(2..5, "XYZ")
println(res)

Результат выполнения кода:

kotlinString "abXYZf"

Пример

Замена с использованием переменных для индексов:

kotlinval text = "Hello World"
val start = 6
val end = 11
val replacement = "Kotlin"

val res = text.replaceRange(start, end, replacement)
println(res)

Результат выполнения кода:

kotlinString "Hello Kotlin"

Пример

Замена пустого диапазона (начальный индекс равен конечному):

kotlinval str = "abcde"
val res = str.replaceRange(2, 2, "INSERT")
println(res)

Результат выполнения кода:

kotlinString "abINSERTcde"

Пример

Если конечный индекс превышает длину строки, будет выброшено исключение IndexOutOfBoundsException:

kotlinval str = "abc"

try {
  val res = str.replaceRange(1, 10, "test")
  println(res)
} catch (e: IndexOutOfBoundsException) {
  println("Error: ${e.message}")
}

Результат выполнения кода:

kotlinError: endIndex: 10, length: 3

Смотрите также

  • функцию substring,
    которая извлекает подстроку из строки
  • функцию replace,
    которая заменяет все вхождения подстроки
  • функцию replaceFirst,
    которая заменяет первое вхождение подстроки
  • функцию plus,
    которая объединяет строки