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


у меня есть StringBuilder

8 188

8 ответов:

Он должен быть!--5-->

r.append("\n");

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

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

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

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

StrBuilder.appendLn ()

побег должен быть сделан с \, а не /.

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

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

вы также можете использовать линию разделителя 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."));

Я создаю оригинальный класс, который похож на 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());

Для 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;
    }

это также будет работать в StringBuilder

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