Java: Example - Array to String
Here is a simple, but slow, program to concatenate all of the strings in an array, each separated by a specifed string separater.
//-------------------------------------------------- arrayToString() // Convert an array of strings to one string. // Put the 'separator' string between each element. public static String arrayToString(String[] a, String separator) { String result = ""; if (a.length > 0) { result = a[0]; // start with the first element for (int i=1; i<a.length; i++) { result = result + separator + a[i]; } } return result; }
The problem with the above program is that a new String object is created each time thru the loop, and the old String object becomes eligible for garbage collection. This constant creation and abandoning objects is terribly inefficient. A more efficient way to do this is to use a StringBuffer or the equivalent Java 5 StringBuilder, which will grow as needed, but generally only has to expand a few times to do the job.
//-------------------------------------------------- arrayToString2() // Convert an array of strings to one string. // Put the 'separator' string between each element. public static String arrayToString2(String[] a, String separator) { StringBuffer result = new StringBuffer(); if (a.length > 0) { result.append(a[0]); for (int i=1; i<a.length; i++) { result.append(separator); result.append(a[i]); } } return result.toString(); }