АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
565 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция trimToSize

Функция trimToSize оптимизирует использование памяти объектом StringBuilder, уменьшая его емкость до длины текущей строки. Это полезно, когда после интенсивных операций с StringBuilder нужно освободить лишнюю память.

Синтаксис

fun trimToSize(): Unit

Пример

Создадим StringBuilder с начальной емкостью и проверим ее до и после вызова trimToSize:

val sb = StringBuilder(100) sb.append("abcde") println("Length: " + sb.length) println("Capacity before: " + sb.capacity()) sb.trimToSize() println("Capacity after: " + sb.capacity())

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

Length: 5 Capacity before: 100 Capacity after: 5

Пример

Продемонстрируем использование trimToSize после удаления части содержимого:

val sb = StringBuilder() sb.append("1234567890") sb.delete(5, 10) println("Capacity before: " + sb.capacity()) sb.trimToSize() println("Capacity after: " + sb.capacity()) println("Content: '" + sb.toString() + "'")

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

Capacity before: 34 Capacity after: 5 Content: '12345'

Пример

Покажем, что функция не изменяет содержимое StringBuilder, а только оптимизирует память:

val sb = StringBuilder(50) sb.append("Hello") val contentBefore = sb.toString() sb.trimToSize() val contentAfter = sb.toString() println("Content same: " + (contentBefore == contentAfter)) println("Content: '" + contentAfter + "'")

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

Content same: true Content: 'Hello'

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

  • функцию ensureCapacity,
    которая гарантирует минимальную емкость StringBuilder
  • свойство capacity,
    которое возвращает текущую емкость StringBuilder
  • свойство length,
    которое возвращает длину строки в StringBuilder
  • функцию setLength,
    которая устанавливает длину строки в StringBuilder