Here's what I came up with. There are several ways to do this and they depend on the tools you are using.
Using StringUtils and ArrayUtils from Commons Lang:
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7}; String result = StringUtils.join(ArrayUtils.toObject(arr), " - ");
You can't just use StringUtils.join(arr, " - "); because StringUtils doesn't have that overloaded version of method. Though, it has method StringUtils.join(int[], char).
Works at any Java version, from 1.2.
Using Java 8 streams:
Something like this:
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7}; String result = Arrays.stream(arr) .mapToObj(String::valueOf) .collect(Collectors.joining(" - "));
In fact, there are lot of variations to achieve it using streams.
Java 8's method String.join() works only with strings, so to use it you still have to convert int[] to String[].
String[] sarr = Arrays.stream(arr).mapToObj(String::valueOf).toArray(String[]::new); String result = String.join(" - ", sarr);
If you're stuck using Java 7 or earlier with no libraries, you could write your own utility method:
public static String myJoin(int[] arr, String separator) { if (null == arr || 0 == arr.length) return ""; StringBuilder sb = new StringBuilder(256); sb.append(arr[0]); //if (arr.length == 1) return sb.toString(); for (int i = 1; i < arr.length; i++) sb.append(separator).append(arr[i]); return sb.toString(); }
Then you can do:
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7}; String result = myJoin(arr, " - ");