可能对于新手来说,会遇到如下异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(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 com.test.main.Maina.main(Maina.java:14)
jdk对split()的定义:
public String[] split(String regex);
/* Splits this string around matches of the given regular expression
参数:
regex - the delimiting regular expression
返回:
the array of strings computed by splitting this string around matches of the given regular expression
抛出:
PatternSyntaxException - if the regular expression's syntax is invalid
*/
public String [] split(String regex, int limit) ;
//Splits this string around matches of the given regular expression.
说明参数regex是不是一个普通的字符串,而是一个正则表达式,所以对于特殊的字符前面需要加上转义‘\’字符
如:
public class Maina {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "ashdh[asjdhja[12312";
String aa[];
System.out.println(url.split("\\[")[0]);
}
}
所以在使用java字符串切分函数split时得注意