读书人

上面的①行的代码为什么会出错

发布时间: 2012-12-18 12:43:41 作者: rapoo

下面的①行的代码为什么会出错?
public static void main(String[] args) {
String str = "http://www.baidu.com.cn?name1=value1&name2=value2&name3=value3";
String[] arr = str.split("?"); -------①
}

在eclipse中执行上面的代码,执行到①行时,提示下面的错误信息:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0
?
^
at java.util.regex.Pattern.error(Pattern.java:1700)
at java.util.regex.Pattern.sequence(Pattern.java:1865)
at java.util.regex.Pattern.expr(Pattern.java:1739)
at java.util.regex.Pattern.compile(Pattern.java:1447)
at java.util.regex.Pattern.<init>(Pattern.java:1130)
at java.util.regex.Pattern.compile(Pattern.java:822)
at java.lang.String.split(String.java:2293)
at java.lang.String.split(String.java:2335)
at test.Test.main(Test.java:10)

谁可以解释一下,我哪里出错了?
[最优解释]
str.split("?");
___________________________
这里是正则表达式,需要转义
str.split("\\?");
[其他解释]
在java中的split()方法中,如果你不小心选择特殊的分隔符如“
[其他解释]
"); for(String tmp : strArray){ System.out.print(tmp); } 输出的结果:I
[其他解释]
like
[其他解释]
java"; String[] strArray = str.split("
[其他解释]
&会不会是这个引起的???
[其他解释]
”,“+”,“*”等时,出现意料之外的结果。如: String str = "I
[其他解释]
l i k e

读书人网 >J2SE开发

热点推荐