0Pricing
Java Academy · Урок

Отступы и удаление пробелов

Управляйте незначащими пробелами

«Отступы и удаление пробелов» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.

Случайные и существенные пробелы

Когда Вы выравниваете текстовый блок по коду с помощью отступов, этот отступ является несущественным и не должен входить в строку. Java удаляет его автоматически, сохраняя только значимые пробельные символы.

Закрывающий разделитель задаёт границу отступа

Java анализирует все строки содержимого и закрывающие """, чтобы найти общий крайний левый столбец, содержащий непробельный символ. Всё слева от этой границы удаляется.

public class Main {
    public static void main(String[] args) {
        String text = """
            Hello
            World
            """;
        System.out.println("[" + text + "]");
    }
}

Перемещение закрывающих кавычек влево

Если закрывающие """ расположены левее содержимого, дополнительные начальные пробелы в каждой строке сохраняются как значимые пробельные символы.

public class Main {
    public static void main(String[] args) {
        String text = """
                Hello
                World
        """;
        System.out.print(text);
    }
}

Конечные пробелы удаляются

Пробелы в конце каждой строки удаляются автоматически. Это предотвращает ошибки из-за невидимых конечных пробелов, которые часто возникают в обычных строках.

public class Main {
    public static void main(String[] args) {
        String text = """
            line one
            line two
            """;
        for (String line : text.split("\n")) {
            System.out.println("<" + line + ">");
        }
    }
}

Метод stripIndent

Метод String.stripIndent() применяет тот же алгоритм удаления несущественных пробельных символов к любой строке во время выполнения. Именно его текстовые блоки используют внутри.

public class Main {
    public static void main(String[] args) {
        String raw = "    a\n    b\n    c\n";
        System.out.print(raw.stripIndent());
    }
}

Управление внутренними отступами

Отступ относительно границы сохраняется. Здесь вторая строка имеет больший отступ, чем первая, и этот дополнительный отступ остаётся в результате.

public class Main {
    public static void main(String[] args) {
        String tree = """
            root
              child
                grandchild
            """;
        System.out.print(tree);
    }
}

Метод indent

String.indent(int n) добавляет n пробелов в начало каждой строки и гарантирует наличие конечного перевода строки. Это удобно для вложения текстовых блоков.

public class Main {
    public static void main(String[] args) {
        String text = """
            a
            b
            """;
        System.out.print(text.indent(4));
    }
}

strip и trim

Используйте strip(), чтобы удалить начальные и конечные пробельные символы всего блока. В отличие от более старого trim(), метод strip() учитывает Unicode.

public class Main {
    public static void main(String[] args) {
        String text = """
            
            content
            
            """;
        System.out.println("[" + text.strip() + "]");
    }
}

Закрывающие кавычки на отдельной строке

Если закрывающие """ находятся на отдельной строке, строка заканчивается конечным переводом строки. Разместите их сразу после последнего символа, чтобы убрать этот перевод строки.

public class Main {
    public static void main(String[] args) {
        String withNewline = """
            done
            """;
        String noNewline = """
            done""";
        System.out.println("A:" + withNewline.length());
        System.out.println("B:" + noNewline.length());
    }
}

Выравнивание по коду

Для удобства чтения Вы можете выровнять весь блок по окружающему коду, и несущественный отступ исчезнет из значения.

public class Main {
    static String menu() {
        return """
                Start
                Options
                Quit
                """;
    }
    public static void main(String[] args) {
        System.out.print(menu());
    }
}

Проверка границы отступа

Чтобы отладить удаление отступов, заключите каждую строку в маркеры. Так Вы точно увидите, какие начальные пробелы сохранились.

public class Main {
    public static void main(String[] args) {
        String block = """
            x
              y
            """;
        for (String line : block.split("\n")) {
            System.out.println("|" + line + "|");
        }
    }
}

Быстрая проверка

Что определяет, какая часть начальных (несущественных) пробельных символов будет удалена из текстового блока?

Повторение

Вы изучили отступы и удаление пробельных символов:

  • Несущественный отступ удаляется автоматически
  • Положение закрывающих """ может задавать границу отступа
  • Пробельные символы в конце строк удаляются
  • stripIndent(), indent(n) и strip() помогают во время выполнения
  • Расположение закрывающих кавычек управляет конечным переводом строки

Часто задаваемые вопросы

Урок «Отступы и удаление пробелов» бесплатный?

Да — полный текст урока «Отступы и удаление пробелов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.

Чему я научусь в уроке «Отступы и удаление пробелов»?

Управляйте незначащими пробелами Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Отступы и удаление пробелов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление текстовых блоков
  2. Отступы и удаление пробелов
  3. Экранирование в текстовых блоках
  4. Варианты использования: JSON и SQL
← Назад к Java Academy