web-dev-qa-db-ja.com

StringBuilderに改行を追加する方法

StringBuilder オブジェクトがあります。

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

今度はStringBuilderに改行文字を追加します。どうすればいいの?

result.append("/n"); 

動作しません。だから、私はUnicodeを使って改行を書くことを考えていました。これは助けになりますか?もしそうなら、どうやって追加できますか?

205
Illep

そのはず

r.append("\n");

しかし、私はあなたが以下のようにすることをお勧めします、

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

System.getProperty("line.separator")はJavaのシステム依存の改行を提供します。 Java 7からも直接値を返すメソッドがあります: System.lineSeparator()

448
Jayamohan

もう1つの選択肢は、Apache Commons StrBuilderを使用することです。これには、StringBuilderに欠けている機能があります。

StrBuilder.appendLn()

バージョン3.6以降、StrBuilderは TextStringBuilder を支持して非推奨となりました。これは同じ機能を持ちます。

18
Half_Duplex

エスケープは\ではなく/で行われるべきです。

したがって、r.append('\n');またはr.append("\n");は動作します(StringBuildercharおよびString型のメソッドをオーバーロードしています)。

15
nhahtdh

新しい行を追加するのにline.seperatorを使うことができます

2
Rashida Hasan

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
K.S

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."));
1
Roxanne

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;
    }
0

コトリンの場合、

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

これはJavaの質問ですが、これはkotlinの最初のGoogle結果でもあり、役に立つかもしれません。

0
farhan patel