有段有意思的代码抛出了个有意思的异常,大家帮忙看看,分析一下。
1.
public static void main(String []args){
String aa = "aaa22333ddc";
String str = "";
str = aa.replaceAll("[^0-9]*", "$");
System.out.println(str);
}
下面是抛出的异常信息:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:687)
at java.util.regex.Matcher.appendReplacement(Matcher.java:711)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2190)
at com.cmcc.TestMain2.main(TestMain2.java:8)
来个网络名言:这是为什么呢?
2.
public static void main(String []args){
String aa = "aaa22333ddc";
String str = "";
str = aa.replaceAll("[^0-9]*", "*");
System.out.println(str);
}
显示的内容是:
**2*2*3*3*3**