I have following code to split a string:
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
But it doesn't work. Why?
Thanks for any suggestion.
split
takes a regex as an argument. $
is a meta-character used as an anchor to match end of a String
. The character should be escaped to split on a literal $
String
String[] ar = s.split("\\$");
Because public String[] split(String regex)
accepts Regex as an argument and not a String.
$
is a meta-character that has a special meaning.
You should escape this $
: \\$
.
By escaping this, you're telling split
to treat $
as the String $
and not the Regex $
.
Note that escaping a String is done by \
, but in Java \
is wrote as \\
.
Alternative solution is to use Pattern#quote
that "Returns a literal pattern String for the specified String:
String[] ar = s.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