如何在StringBuilder中附加换行符

问题描述 投票:207回答:8

我有一个StringBuilder对象,

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

现在我想在StringBuilder上添加一个换行符。我该怎么做?

result.append("/n"); 

不行。所以,我正在考虑使用Unicode编写换行符。这会有帮助吗?如果是这样,我该如何添加?

java stringbuilder
8个回答
463
投票

它应该是

r.append("\n");

但我建议你这样做,

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

System.getProperty("line.separator")在java中为您提供依赖于系统的换行符。同样来自Java 7的是一种直接返回值的方法:System.lineSeparator()


18
投票

另一个选择是使用Apache Commons StrBuilder,它具有StringBuilder中缺少的功能。

StrBuilder.appendLn()

从版本3.6开始,StrBuilder已被弃用,而TextStringBuilder具有相同的功能


15
投票

逃脱应该使用\,而不是/

所以r.append('\n');r.append("\n");将起作用(StringBuilder重载了charString类型的方法)。


2
投票

您可以使用line.seperator添加新行


2
投票

我创建类似于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

1
投票

您还可以在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."));

0
投票

对于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;
    }

-2
投票

这也适用于StringBuilder

result.append("<BR />");
© www.soinside.com 2019 - 2024. All rights reserved.