string to string array conversion in java
To start you off on your assignment, String.split
splits strings on a regular expression and this expression may be an empty string:
String[] ary = "abc".split("");
Yields the array:
(java.lang.String[]) [, a, b, c]
Getting rid of the empty 1st entry is left as an exercise for the reader :-)
Note: In Java 8, the empty first element is no longer included.
String strName = "name";String[] strArray = new String[] {strName};System.out.println(strArray[0]); //prints "name"
The second line allocates a String array with the length of 1. Note that you don't need to specify a length yourself, such as:
String[] strArray = new String[1];
instead, the length is determined by the number of elements in the initalizer. Using
String[] strArray = new String[] {strName, "name1", "name2"};
creates an array with a length of 3.
Assuming you really want an array of single-character strings (not a char[]
or Character[]
)
1. Using a regex:
public static String[] singleChars(String s) { return s.split("(?!^)");}
The zero width negative lookahead prevents the pattern matching at the start of the input, so you don't get a leading empty string.
2. Using Guava:
import java.util.List;import org.apache.commons.lang.ArrayUtils;import com.google.common.base.Functions;import com.google.common.collect.Lists;import com.google.common.primitives.Chars;// ...public static String[] singleChars(String s) { return Lists.transform(Chars.asList(s.toCharArray()), Functions.toStringFunction()) .toArray(ArrayUtils.EMPTY_STRING_ARRAY);}