Comment formater une liste de chaînes de caractères dans
J'ai une liste de chaînes de caractères que je veux format de chacun d'eux de la même manière. par exemple, myListOfStrings = str1, str2, str3, et mon format (%s)
Je veux avoir quelque chose comme ceci:
String.format(" (%s) ", myListOfStrings)
Sortie
(str1) (str2) (str3)
Est-il un moyen élégant de faire cela? ou dois-je utiliser un générateur de chaîne et de faire une boucle foreach sur toutes les chaînes?
Êtes-vous à l'aide de Java 8?
Eh bien, StringBuilder semble évident , pouvez-vous fournir un exemple de code (à l'aide de SB), afin de mieux comprendre ce que tu veux dire , s'il vous plaît.
Vous pouvez utiliser StringBuilder(si vous ne voulez pas thread-safe) ou d'utiliser une mémoire tampon de chaîne
ne pouvez-vous pas avoir une classe wrapper pour votre liste?
Eh bien, StringBuilder semble évident , pouvez-vous fournir un exemple de code (à l'aide de SB), afin de mieux comprendre ce que tu veux dire , s'il vous plaît.
Vous pouvez utiliser StringBuilder(si vous ne voulez pas thread-safe) ou d'utiliser une mémoire tampon de chaîne
ne pouvez-vous pas avoir une classe wrapper pour votre liste?
OriginalL'auteur user844541 | 2015-05-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec Java 8:
Ou:
Que celle que vous préférez est une question de préférence personnelle.
La première rejoint les éléments sur
) (
qui donne:a) (b) (c
Puis vous utilisez le préfixe et le suffixe arguments pour
joining
avec préfixe(
et le suffixe avec)
, de produire le bon résultat.La seconde alternative transforme chaque élément de
( + item + )
puis se joint à eux sur " ".La première pourrait également être un peu plus vite, car il ne nécessite la création d' un
StringBuilder
exemple - pour le rejoindre et le pré/suffixe. La deuxième solution nécessite la création d' n + 1StringBuilder
cas, un pour chaque élément et un pour le rejoindre sur " ".OriginalL'auteur Boris the Spider
si vous voulez une solution en ligne, vous pouvez utiliser l'un de la StringUtils.rejoindre méthodes de Apache Commons Lang.
OriginalL'auteur Sharon Ben Asher
Vous pouvez essayer ceci:
OriginalL'auteur Krishanthy Mohanachandran
OriginalL'auteur G.B.Krishna
Boris L'Araignée de réponse est ce que je voudrais aller avec, mais dans le cas où vous n'êtes pas à l'aide de java 8, mais peut-être que vous êtes à l'aide de Goyave vous pouvez faire quelque chose comme cela, mais c'est un peu verbeux:
OriginalL'auteur Kajo
À l'aide de Java8 nouveau
forEach
méthode d'itération sur les collections:Essayer ici: https://ideone.com/52EKRH
printf
, plutôt que les deuxformat
etprint
. Ou utiliser unmap
puis unprint
. De toute façon, je pense que ce n'est pas une bonne approche.sur le printf, encore), il est beaucoup plus lisible que du stream/map/collecter et de l'assemblage des formes
avez-vous jamais utiliser un enregistreur à tous?
La journalisation si, pour des fins de débogage pas de la logique métier.
Votre nouveau code est beaucoup mieux, mais je pense que si vous avez un
StringBuilder
puis utilisation - passez leformat
entièrement et de ses frais généraux...OriginalL'auteur guido