Can somebody help me in understanding how split
in java works.I have the following code
String 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)
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.
\
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).
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