Existe-t-il un moyen facile de concaténer plusieurs lignes de texte en une chaîne sans constamment ajouter une nouvelle ligne?
Donc j'ai essentiellement besoin pour ce faire:
String text = "line1\n";
text += "line2\n";
text += "line3\n";
useString( text );
Il est plus impliqué, mais c'est l'idée de base. Il n'y a rien là-bas qui pourrait me permettre de faire quelque chose de plus le long des lignes de ce si?
DesiredStringThinger text = new DesiredStringThinger();
text.append( "line1" );
text.append( "line2" );
text.append( "line3" );
useString( text.toString() );
Évidemment, il n'a pas besoin de travailler exactement comme ça, mais je pense que je obtenir le point à travers. Il y a toujours la possibilité d'écrire une boucle qui traite le texte moi-même, mais ce serait bien si il y a une norme de classe Java qui déjà fait quelque chose comme ça plutôt que de m'avoir besoin de porter une classe autour de entre les applications juste pour que je puisse faire quelque chose d'aussi trivial.
Merci!
source d'informationauteur Marshmellow1328
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
StringWriter
enveloppé dans unPrintWriter
:Autant que je sache, il n'y a pas de bibliothèque de classe qui vous permet de le faire.
La suite fait le travail:
Vous pouvez utiliser à partir de Apache Commons la StringUtils.rejoignez helper. Qui permet de construire une Chaîne de caractères à partir d'une liste. Vous pouvez ajouter l' 'délimiteur' caractère de la chaîne.
Si vous êtes prêt à utiliser des bibliothèques externes, vérifiez la Menuisier dans la Goyave.
Votre code devrait aller pour quelque chose comme
où
parts
est unIterable<String>
.Vous pouvez utiliser un StringBuffer
Ce ne sera pas ajouter le caractère de nouvelle ligne, mais vous pouvez certainement ajouter que ainsi pour chaque ligne.
Peut-être l'impact le plus faible de la méthode est d'ajouter une méthode statique pour ajouter une nouvelle ligne à un
StringBuilder
.Mais
@Joachim Sauer
me bat pour ma solution préférée. Pour des exemples plus complexes, vous pourriez vouloir utiliser vos propresWriter
décorateur,@Rahul G
(utilisez uniquement les champs privés).Si vous n'êtes pas fou au sujet de la performance, je pense que c'est propre et soigné.