Как добавить новую строку в StringBuilder

У меня есть объект StringBuilder,

StringBuilder result = new StringBuilder();
result.append(someChar);

Теперь я хочу добавить символ новой строки в StringBuilder. Как я могу это сделать?

result.append("/n"); 

Не работает. Итак, я думал о написании новой строки с использованием Unicode. Это поможет? Если да, как я могу добавить один?

Ответ 1

Это должно быть

r.append("\n");

Но я рекомендую вам сделать, как показано ниже,

r.append(System.getProperty("line.separator"));

System.getProperty("line.separator") дает вам зависящую от системы строку newline в java. Также из Java 7 существует метод, который возвращает значение напрямую: System.lineSeparator()

Ответ 2

Другой вариант - использовать Apache Commons StrBuilder, функциональность которого отсутствует в StringBuilder.

StrBuilder.appendLn()

Начиная с версии 3.6, StrBuilder устарел в пользу TextStringBuilder, который имеет те же функции

Ответ 3

Побег должен выполняться с помощью \, а не /.

Итак, r.append('\n'); или r.append("\n"); будут работать (StringBuilder имеет перегруженные методы для типов char и String).

Ответ 4

вы можете использовать line.seperator для добавления новой строки в

Ответ 5

Я создаю оригинальный класс, похожий на StringBuidler, и могу добавить строку, вызвав метод appendLine (String str).

public class StringBuilderPlus {

    private StringBuilder sb;

    public StringBuilderPlus(){
         sb = new StringBuilder();
    }

    public void append(String str)
    {
        sb.append(str != null ? str : "");
    }

    public void appendLine(String str)
    {
        sb.append(str != null ? str : "").append(System.getProperty("line.separator"));
    }

    public String toString()
    {
        return sb.toString();
    }
}

Использование:

StringBuilderPlus sb = new StringBuilderPlus();
sb.appendLine("aaaaa");
sb.appendLine("bbbbb");
System.out.println(sb.toString());

Консоль:

aaaaa
bbbbb

Ответ 6

Вы также можете использовать символ разделителя строк в String.format (см. java.util.Formatter), который также является агностиком платформы.

то есть:.

result.append(String.format("%n", ""));

Если вам нужно добавить больше пробелов, просто используйте:

result.append(String.format("%n%n", ""));

Вы также можете использовать StringFormat для форматирования всей строки с помощью новой строки (-ов) в конце.

result.append(String.format("%10s%n%n", "This is my string."));

Ответ 7

Для Android, используйте это для чтения и записи!

private void writeToFile(String message) {
        try {
            OutputStream outputStream = openFileOutput("todoList.txt",Context.MODE_PRIVATE);
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
            outputStreamWriter.write(message);
            outputStreamWriter.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private String readFromFile() throws IOException {

        String result = "";
        InputStream inputStream = openFileInput("todoList.txt");

        if (inputStream != null) {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String tempString = "";
            StringBuilder stringBuilder = new StringBuilder();

            while ( (tempString = bufferedReader.readLine()) != null ) {

                stringBuilder.append(tempString);
                stringBuilder.append("\n");
            }
            inputStream.close();
            result = stringBuilder.toString();
        }
        return result;
    }

Ответ 8

Для Котлина

StringBuilder().appendln("your text");

Хотя это вопрос Java, это также первый результат Google для kotlin, может пригодиться.

Ответ 9

это также работает в StringBuilder

result.append("<BR />");