Consider following code:
ArrayList aList = new ArrayList();
aList.add(2134);
aList.add(3423);
aList.add(4234);
for(int aValue : aList) {
if (aValue != aList.Count - 1)
{
tmpString += aValue + ",";
}
else
{
tmpString += aValue + ")";
}
}
Perhaps?
You could use Commons Lang:
String tmpString = "(" + StringUtils.join(aList, ",") + ")";
Alternatively, if you can't use external libraries:
StringBuilder builder = new StringBuilder("(");
for (int aValue : aList) builder.append(aValue).append(",");
if (aList.size() > 0) builder.deleteCharAt(builder.length() - 1);
builder.append(")");
String tmpString = builder.toString();
If you used an Iterator
you could test hasNext()
inside your loop to determine whether you needed to append a comma.
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(")");
You will have to replace the last comma with a ')'. But use a StringBuilder instead of adding strings together.
How about this from google-guava
String joinedStr = Joiner.on(",").join(aList);
System.out.println("("+JjoinedStr+")");
Building off Mateusz's Java 8 example, there's an example in the StringJoiner JavaDoc that nearly does what OP wants. Slightly tweaked it would look like this:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
String commaSeparatedNumbers = numbers.stream()
.map(i -> i.toString())
.collect( Collectors.joining(",","(",")") );