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