Java String Split by "|"
You must use:
String [] temp = s.split("\\|");
This is because the split
method takes a regular expression, and |
is one of the special characters. It means 'or'. That means you are splitting by '' or ''
, which is just ''
. Therefore it will split between every character.
You need two slashes because the first one is for escaping the actual \
in the string, since \
is Java's escape character in a string. Java understands the string like "\|
", and the regex then understands it like "|
".
Vijay
Updated on July 19, 2022Comments
-
Vijay almost 2 years
I am trying to parse some data using Java which is separated by '|' sequence. Below is an example of the data.
String s = "111206|00:00:00|2|64104|58041"; String [] temp = s.split("|"); for(String p: temp) System.out.println(p);
But instead of splitting at '|' it separates every character separately. Here is the output I get for the above code.
1 1 1 2 0 6 | 0 0 : 0 0 : 0 0 | 2 | 6 4 1 0 4 | 5 8 0 4 1
I found a turn around by replacing the '|' by ',' in the line, but the patch of code is going to run many times and I want to optimize it.
String s = "111206|00:00:00|2|64104|58041"; s = s.replace('|', ',');
I just want to know what the problem is with '|' ??
-
tckmn about 11 years@jahroy FGITW :)
-
Vineet Singla about 11 yearsPerfect, nicest and easiest way.
-
Code-Apprentice about 11 yearsI saw this question 7 mins too late ;-( Good job GoldenDoorknob!
-
doctorram over 2 yearsIt was an unexpected behavior!