Convert a String to an array or an array to a stringTag(s): Language
String to Array
NOTE: This HowTo was designed for JDK 1.0.2. Starting with version 1.4, the String class
offers a better way to split a String into an Array. It's the String.split(regexp) method. See this
HowTo.
public String[] stringtoArray( String s, String sep ) {
  // convert a String s to an Array, the elements
  // are delimited by sep
  // NOTE : for old JDK only (<1.4).
  //        for JDK 1.4 +, use String.split() instead
  StringBuffer buf = new StringBuffer(s);
  int arraysize = 1;
  for ( int i = 0; i < buf.length(); i++ ) {
    if ( sep.indexOf(buf.charAt(i) ) != -1 )
      arraysize++;
  }
  String [] elements  = new String [arraysize];
  int y,z = 0;
  if ( buf.toString().indexOf(sep) != -1 ) {
    while (  buf.length() > 0 ) {
      if ( buf.toString().indexOf(sep) != -1 ) {
        y =  buf.toString().indexOf(sep);
        if ( y != buf.toString().lastIndexOf(sep) ) {
          elements[z] = buf.toString().substring(0, y );
          z++;
          buf.delete(0, y + 1);
        }
        else if ( buf.toString().lastIndexOf(sep) == y ) {
          elements[z] = buf.toString().substring
            (0, buf.toString().indexOf(sep));
          z++;
          buf.delete(0, buf.toString().indexOf(sep) + 1);
          elements[z] = buf.toString();z++;
          buf.delete(0, buf.length() );
        }
      }
    }
  }
  else {
    elements[0] = buf.toString();
  }
  buf = null;
  return elements;
}Array to String
The StringBuffer approach :
public class StringUtils {
  private StringUtils() {}
  public static String arrayToString(String[] a, String separator) {
    if (a == null || separator == null) {
        return null;
    }
    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();
  }
  public static void main(String args[]) throws Exception {
    System.out.println(
         StringUtils.arrayToString(new String[] { "a" , "b", "c" } ,  ",")
         );
  }
}
public class StringUtils {
  private StringUtils() {}
  public static String arrayToString(String[] a, String separator) {
    if (a == null || separator == null) {
        return null;
    }
    StringBuilder result = new StringBuilder();
    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();
  }
  public static void main(String args[]) throws Exception {
    System.out.println(
         StringUtils.arrayToString(new String[] { "a" , "b", "c" } ,  ",")
         );
  }
}
Instances of StringBuilder are not safe for use by multiple threads. If such synchronization is required then it is recommended that StringBuffer be used.
  mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com
