Как добавить новую строку в 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 />");