Consider these simple lines of code:
public class Main {
public static void main(String[] args) {
String string = "Lorem,ipsum,dolor,sit,amet";
String[] strings = string.split(",");
for (String s : strings) {
System.out.println(s);
}
}
}
As expected, the output is the following:
Lorem
ipsum
dolor
sit
amet
Now consider a variation of the previous code, in which I simply turned ,
into |
:
public class Main {
public static void main(String[] args) {
String string = "Lorem|ipsum|dolor|sit|amet";
String[] strings = string.split("|");
for (String s : strings) {
System.out.println(s);
}
}
}
I expect the same exact output, but it is strangely the following:
L
o
r
e
m
|
i
p
s
u
m
|
d
o
l
o
r
|
s
i
t
|
a
m
e
t
What's wrong?
String#split() method accepts a regex and |
have a special meaning in regex.
To see expected result escape that |
.
String[] splits=string.split("\\|");
Or you can use Pattern
class, to avoid all the mess.
String[] splits= string.split(Pattern.quote("|"));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With