# 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();
    }