Prenons le suivant:
ArrayList<Integer> aList = new ArrayList<Integer>();
aList.add(2134);
aList.add(3423);
aList.add(4234);
aList.add(343);
String tmpString = "(";
for(int aValue : aList) {
tmpString += aValue + ",";
}
tmpString = (String) tmpString.subSequence(0, tmpString.length()-1) + ")";
System.out.println(tmpString);
7 Réponses :
for(int aValue : aList) {
if (aValue != aList.Count - 1)
{
tmpString += aValue + ",";
}
else
{
tmpString += aValue + ")";
}
}
Perhaps?
Vous pouvez utiliser Commons Lang : Alternativement, si vous ne pouvez pas utiliser des bibliothèques externes: p>
Je préfère également l'approche des communes Lang, d'autant plus que je l'ai comme une dépendance dans tous les projets de toute façon.
Je finis habituellement de l'utiliser pour une raison ou une autre aussi. Aucune raison de réinventer la roue sauf si vous avez des contraintes spécifiques vous limitant à utiliser des bibliothèques externes. Certaines des bibliothèques Apache Commons ont leurs inconvénients lorsqu'il s'agit de collections et de génériques, mais Stringutils est assez simple.
Solution très soignée! Je savais qu'il doit y avoir un moyen de le faire dans une doublure .. Et la Stringutils Lib est presque standard à inclure quand même.
Vous devrez remplacer la dernière virgule avec un ')'. Mais utilisez un stringbuilder au lieu d'ajouter des cordes ensemble. P>
Que diriez-vous de Google-GUAVA
String joinedStr = Joiner.on(",").join(aList);
System.out.println("("+JjoinedStr+")");
Si vous avez utilisé un itérateur code>, vous pouvez tester hasnext () code> à l'intérieur de votre boucle pour déterminer si vous avez besoin d'ajouter une virgule. StringBuilder builder = new StringBuilder();
builder.append("(");
for(Iterator<Integer> i=aList.iterator(); i.hasNext();)
{
builder.append(i.next().toString());
if (i.hasNext()) builder.append(",");
}
builder.append(")");
Depuis ArrayList<Integer> intList = new ArrayList<Integer>();
intList.add(2134);
intList.add(3423);
intList.add(4234);
intList.add(343);
String prefix = "(";
String infix = ", ";
String postfix = ")";
StringJoiner joiner = new StringJoiner(infix, prefix, postfix);
for (Integer i : intList)
joiner.add(i.toString());
System.out.println(joiner.toString());
Construction de Mateusz 'sons Java 8, il existe un exemple dans le StringJoininer Javadoc qui fait presque ce que veut. Il ressemblerait légèrement à ceci:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
String commaSeparatedNumbers = numbers.stream()
.map(i -> i.toString())
.collect( Collectors.joining(",","(",")") );