Menu
Coddy logo textTech

Эффективное создание текста

Часть раздела Логика и управление потоком путешествия по Kotlin на Coddy. Урок 47 из 63.

StringBuilder накапливает текст с помощью вызовов append, затем toString создаёт итоговый String. Внутри цикла можно добавлять метки, числа и разделители, не создавая вручную заново всю неизменяемую строку String на каждом шаге. Точно определите, где должны находиться разделители.

Внутри main:

val result = StringBuilder()
for (n in 1..3) {
    if (n > 1) result.append("-")
    result.append(n)
}
println(result.toString())

Разделитель добавляется перед каждым элементом, кроме первого, поэтому в конце не остаётся дефиса.

Используйте StringBuilder.append для поэтапного добавления текста и toString для получения итоговой String.

challenge icon

Задание

Средне

Дополните numberLine параметром count: Int. Используйте StringBuilder, чтобы вернуть числа от 1 до count, разделённые одним дефисом, без ведущего или завершающего дефиса. count находится в диапазоне от 0 до 20; при нулевом значении возвращается пустая строка.

Если выше не указаны более строгие границы, коллекции содержат не более 100 элементов на каждом уровне, а целочисленные аргументы и целочисленные значения коллекций находятся в диапазоне от -1000 до 1000. Текст, предоставленный для разбора, может содержать недопустимые представления или представления, выходящие за допустимый диапазон, как описано далее.

Верните значение типа String. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества, за которым следуют его элементы, а отображение начинается с количества его записей, за которым следуют каждый ключ и значение. Вложенные списки повторяют формат «количество и элементы» для каждой строки. Предоставленный main выводит возвращаемое значение, за которым следует один перевод строки. Для списков используется стандартный формат Kotlin со скобками; не выводите дополнительные метки.

Попробуйте сами

fun numberLine(count: Int): String {
    // Напишите ваше решение здесь.
    return ""
}
fun main() {
    val count = readln().toInt()
    println(numberLine(count))
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Песочница Kotlin