StringBuilder
オブジェクトがあります。
StringBuilder result = new StringBuilder();
result.append(someChar);
今度はStringBuilder
に改行文字を追加します。どうすればいいの?
result.append("/n");
動作しません。だから、私はUnicodeを使って改行を書くことを考えていました。これは助けになりますか?もしそうなら、どうやって追加できますか?
そのはず
r.append("\n");
しかし、私はあなたが以下のようにすることをお勧めします、
r.append(System.getProperty("line.separator"));
System.getProperty("line.separator")
はJavaのシステム依存の改行を提供します。 Java 7からも直接値を返すメソッドがあります: System.lineSeparator()
もう1つの選択肢は、Apache Commons StrBuilderを使用することです。これには、StringBuilderに欠けている機能があります。
バージョン3.6以降、StrBuilderは TextStringBuilder を支持して非推奨となりました。これは同じ機能を持ちます。
エスケープは\
ではなく/
で行われるべきです。
したがって、r.append('\n');
またはr.append("\n");
は動作します(StringBuilder
はchar
およびString
型のメソッドをオーバーロードしています)。
新しい行を追加するのにline.seperator
を使うことができます
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
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."));
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().appendln("your text");
これはJavaの質問ですが、これはkotlinの最初のGoogle結果でもあり、役に立つかもしれません。