java分裂函数

ayu*_*ush 8 java regex arrays string split

有人可以帮助我理解splitjava中的工作原理.我有以下代码

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]+")";
Run Code Online (Sandbox Code Playgroud)

但是在split函数中我得到以下异常

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)
Run Code Online (Sandbox Code Playgroud)

Kon*_*rus 23

键入时"\\",这实际上是一个反斜杠(由于Java字符串中的特殊字符转义).

正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠来转义它.所以最后,您需要传递"\\\\"模式以匹配单个反斜杠.