I need help with the split()
method.
I have the followingString
:
String values = "0|0|0|1|||0|1|0|||";
I need to put the values into an array. There are 3 possible strings: "0", "1", and ""
My problem is, when i try to use split()
:
String[] array = values.split("\\|");
My values are saved only until the last 0. Seems like the part "|||" gets trimmed. What am i doing wrong?
thanks
Consider this example:
public class StringSplit {
public static void main(String args[]) throws Exception{
String testString = "Real|How|To|||";
System.out.println
(java.util.Arrays.toString(testString.split("\\|")));
// output : [Real, How, To]
}
}
The result does not include the empty strings between the "|" separator. To keep the empty strings :
public class StringSplit {
public static void main(String args[]) throws Exception{
String testString = "Real|How|To|||";
System.out.println
(java.util.Arrays.toString(testString.split("\\|", -1)));
// output : [Real, How, To, , , ]
}
}
For more details go to this website: http://www.rgagnon.com/javadetails/java-0438.html
Try this
String[] array = values.split("\\|",-1);
This is expected.
Refer to Javadocs for split
.
Splits this string around matches of the given regular expression.
This method works as if by invoking the two-argument split(java.lang.String,int) method with the given expression and a limit argument of zero. Trailing empty strings are therefore not included in the resulting array.
Source: Stackoverflow.com