J'ai un StringBuilder
objet,
StringBuilder result = new StringBuilder();
result.append(someChar);
Maintenant, je veux ajouter un caractère de nouvelle ligne au StringBuilder
. Comment puis-je le faire?
result.append("/n");
Ne marche pas. Je pensais donc à écrire une nouvelle ligne en utilisant Unicode. Cela aidera-t-il? Si oui, comment puis-je en ajouter un?
CA devrait etre
r.append("\n");
Mais je vous recommande de faire comme ci-dessous,
r.append(System.getProperty("line.separator"));
System.getProperty("line.separator")
vous donne une nouvelle ligne dépendante du système en Java. Également à partir de Java 7, il existe une méthode qui renvoie directement la valeur: System.lineSeparator()
Une autre option consiste à utiliser Apache Commons StrBuilder, qui présente les fonctionnalités qui manquent dans StringBuilder.
À partir de la version 3.6, StrBuilder est déconseillé en faveur de TextStringBuilder , qui a les mêmes fonctionnalités.
La sortie doit être effectuée avec \
, pas /
.
Donc, r.append('\n');
ou r.append("\n");
fonctionnera (StringBuilder
a surchargé les méthodes pour le type char
et String
.).
vous pouvez utiliser line.seperator
pour ajouter une nouvelle ligne
Je crée une classe originale similaire à StringBuidler et je peux ajouter une ligne en appelant la méthode 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();
}
}
Usage:
StringBuilderPlus sb = new StringBuilderPlus();
sb.appendLine("aaaaa");
sb.appendLine("bbbbb");
System.out.println(sb.toString());
Console:
aaaaa
bbbbb
Vous pouvez également utiliser le caractère séparateur de ligne dans String.format
(voir Java.util.Formatter
), qui est également indépendant de la plate-forme.
c'est à dire.:
result.append(String.format("%n", ""));
Si vous avez besoin d'ajouter plus d'espaces, utilisez simplement:
result.append(String.format("%n%n", ""));
Vous pouvez également utiliser StringFormat
pour formater votre chaîne entière, avec une nouvelle ligne à la fin.
result.append(String.format("%10s%n%n", "This is my string."));
Pour Android , utilisez-le pour lire et écrire!
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;
}
Pour Kotlin,
StringBuilder().appendln("your text");
Bien qu'il s'agisse d'une question Java, il s'agit également du premier résultat de Google pour kotlin, qui pourrait s'avérer utile.