Функция substring

Функция substring возвращает подстроку из текущего StringBuilder. Может принимать один параметр - начальный индекс, или два параметра - начальный и конечный индекс. При этом подстрока включает символ по начальному индексу и исключает символ по конечному индексу.

Синтаксис

kotlinfun substring(startIndex: Int): String
kotlinfun substring(startIndex: Int, endIndex: Int): String

Пример

Получим подстроку с 3-го индекса до конца:

kotlinval sb = StringBuilder("abcde")
val res: String = sb.substring(3)
println(res)

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

kotlinString "de"

Пример

Получим подстроку с 1-го по 4-й индекс:

kotlinval sb = StringBuilder("abcde")
val res: String = sb.substring(1, 4)
println(res)

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

kotlinString "bcd"

Пример

Если начальный индекс равен конечному, возвращается пустая строка:

kotlinval sb = StringBuilder("abcde")
val res: String = sb.substring(2, 2)
println(res)

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

kotlinString ""

Пример

Использование substring с числовым содержимым:

kotlinval sb = StringBuilder("12345")
val res: String = sb.substring(1, 4)
println(res)

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

kotlinString "234"

Ошибки

При некорректных индексах возникают исключения:

kotlinval sb = StringBuilder("abcde")

// IndexOutOfBoundsException - начальный индекс отрицательный
val res1 = sb.substring(-1)
kotlinval sb = StringBuilder("abcde")

// IndexOutOfBoundsException - начальный индекс больше длины
val res2 = sb.substring(10)
kotlinval sb = StringBuilder("abcde")

// IndexOutOfBoundsException - конечный индекс больше длины
val res3 = sb.substring(1, 10)
kotlinval sb = StringBuilder("abcde")

// IndexOutOfBoundsException - начальный индекс больше конечного
val res4 = sb.substring(3, 1)

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

  • функцию subSequence,
    которая возвращает подпоследовательность в виде CharSequence
  • функцию delete,
    которая удаляет часть символов из StringBuilder
  • функцию replace,
    которая заменяет часть символов в StringBuilder
  • функцию insert,
    которая вставляет строку в указанную позицию