Рубрики
Без рубрики

Многострочная строка Java

В ожидании JDK 13, каковы другие способы, которыми Java поддерживает многострочные строки?

Автор оригинала: baeldung.

1. Обзор

Из-за того, что в Java еще нет собственного многострочного класса строк, создавать и использовать многострочные строки немного сложнее.

В этом уроке мы рассмотрим несколько методов создания и использования многострочных строк в Java .

2. Получение разделителя строк

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

String newLine = System.getProperty("line.separator");

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

3. Конкатенация строк

Конкатенация строк-это простой собственный метод, который можно использовать для создания многострочных строк:

public String stringConcatenation() {
    return "Get busy living"
            .concat(newLine)
            .concat("or")
            .concat(newLine)
            .concat("get busy dying.")
            .concat(newLine)
            .concat("--Stephen King");
}

Использование оператора + – это еще один способ достижения того же самого. Компиляторы Java переводят concat() и оператор + таким же образом:

public String stringConcatenation() {
    return "Get busy living"
            + newLine
            + "or"
            + newLine
            + "get busy dying."
            + newLine
            + "--Stephen King";
}

4. Соединение строк

Java 8 представила String#join , который принимает разделитель вместе с некоторыми строками в качестве аргументов. Он возвращает конечную строку, в которой все входные строки соединены вместе с разделителем:

public String stringJoin() {
    return String.join(newLine,
                       "Get busy living",
                       "or",
                       "get busy dying.",
                       "--Stephen King");
}

5. Строитель строк

StringBuilder – это вспомогательный класс для сборки String s. StringBuilder был представлен в Java 1.5 в качестве замены StringBuffer . Это хороший выбор для создания огромных строк в цикле:

public String stringBuilder() {
    return new StringBuilder()
            .append("Get busy living")
            .append(newLine)
            .append("or")
            .append(newLine)
            .append("get busy dying.")
            .append(newLine)
            .append("--Stephen King")
            .toString();
}

6. Строковый писатель

StringWriter -это еще один метод, который мы можем использовать для создания многострочной строки. Нам не нужна новая строка здесь, потому что мы используем PrintWriter . Функция println автоматически добавляет новые строки:

public String stringWriter() {
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printWriter.println("Get busy living");
    printWriter.println("or");
    printWriter.println("get busy dying.");
    printWriter.println("--Stephen King");
    return stringWriter.toString();
}

7. Столяр из гуавы

Использование внешней библиотеки только для такой простой задачи не имеет большого смысла, однако, если проект уже использует библиотеку для других целей, мы можем использовать ее. Например, библиотека Гуавы Google очень популярна. У Guava есть класс Joiner, который способен создавать многострочные строки:

public String guavaJoiner() {
    return Joiner.on(newLine).join(ImmutableList.of("Get busy living",
        "or",
        "get busy dying.",
        "--Stephen King"));
}

8. Загрузка из файла

Java читает файлы точно так, как они есть. Это означает, что если у нас есть многострочная строка в текстовом файле, то при чтении файла у нас будет такая же строка. Существует множество способов чтения из файла на Java .

На самом деле, это хорошая практика, чтобы отделить длинные строки от кода:

public String loadFromFile() throws IOException {
    return new String(Files.readAllBytes(Paths.get("src/main/resources/stephenking.txt")));
}

9. Использование функций IDE

Многие современные IDE поддерживают многострочное копирование/вставку. Eclipse и IntelliJ IDEA являются примерами таких идей. Мы можем просто скопировать нашу многострочную строку и вставить в эти IDE две двойные кавычки.

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

10. Заключение

В этом уроке мы изучили несколько методов построения многострочных строк на Java.

Хорошей новостью является то, что Java 13 будет иметь встроенную поддержку многострочных строк через Текстовые блоки . Излишне говорить, что все вышеперечисленные методы по-прежнему будут работать в Java 13.

Код для всех методов в этой статье доступен на Github .