java split function
Solution 1
When you type "\\"
, this is actually a single backslash (due to escaping special characters in Java Strings).
Regular expressions also use backslash as special character, and you need to escape it with another backslash. So in the end, you need to pass "\\\\"
as pattern to match a single backslash.
Solution 2
\
is a special character in regular expressions, as well as in Java string literals. If you want a literal backslash in a regex, you have to double it twice. Try \\\\
(becomes \\
once lexed, becomes a literal \
to the regex parser).
Solution 3
You are trying to split the string on a back slash, you need to use:
String regex = "\\\\";
\
is the escape character for both Java string and the regex engine. So a Java string \\
is passed on to the regex engine as \
which is incomplete as \
has to be followed by the character that it is trying to escape.
The String \\\\
is passed on to the regex engine as \\
which is a \
escaping a \
which effectively means a literal \
.
Solution 4
You have to escape '\' char in regexp patterns, so your regex basically will be
String regex = "\\\\";
Solution 5
Replace
String regex = "\\";
with
String regex = "\\\\";
Comments
-
ayush almost 2 years
Can somebody help me in understanding how
split
in java works.I have the following codeString temp_array[]; String rates = "RF\\0.6530\\0.6535\\D"; String temp = rates.substring(1, rates.length()); System.out.println(temp);// prints F\0.6530\0.6535\D String regex = "\\"; temp_array = temp.split(regex); String insertString = "INSERT into table values("+temp_array[0]+","+temp_array[1]+","+temp_array[2]+","+temp_array[3]+")";
however at the split function i get the following exception
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.<init>(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.String.split(Unknown Source) at java.lang.String.split(Unknown Source) at simple_hello.main(simple_hello.java:15)
-
Manrico Corazzi about 13 yearsLOL, I see I've not been as fast as I thought :D