import java.io.*;
class Test{
public static void main(String[] args) throws Exception{
String s = "abc300";
System.out.println(s.replaceAll("abc", "$ ")); //line 1 throws Exception
System.out.println(s.replaceAll("abc", "cost ")); //OK!
System.out.println(s.replaceAll("abc", "\$ ")); //compile error
System.out.println(s.replaceAll("abc", "\\$ ")); //OK!
}
}/*
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group ref
erence
at java.util.regex.Matcher.appendReplacement(Matcher.java:706)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2028)
at Test.main(tmp.java:5)
*/若"$",则抛出异常
若"\$",则编译错误,但是想在字符串中包含",用的是single backslash——"\""
若"\\$",OK
谁能说一下到底什么时候是single backslash \
什么时候是double backslash \\
class Test{
public static void main(String[] args) throws Exception{
String s = "abc300";
System.out.println(s.replaceAll("abc", "$ ")); //line 1 throws Exception
System.out.println(s.replaceAll("abc", "cost ")); //OK!
System.out.println(s.replaceAll("abc", "\$ ")); //compile error
System.out.println(s.replaceAll("abc", "\\$ ")); //OK!
}
}/*
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group ref
erence
at java.util.regex.Matcher.appendReplacement(Matcher.java:706)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2028)
at Test.main(tmp.java:5)
*/若"$",则抛出异常
若"\$",则编译错误,但是想在字符串中包含",用的是single backslash——"\""
若"\\$",OK
谁能说一下到底什么时候是single backslash \
什么时候是double backslash \\
解决方案 »
- 求一个设计比较好得JDBC的代码!
- 一个网页,为什么通过编程扒取获得的内容会不一样?
- 一个new StringTokenizer(s,",,");的问题.
- 在jdk1.3中有什么办法替换jdk1.4的replaceAll的方法?
- 请教高手,路过的帮忙啊
- 关于放大图片的解决方案
- 请问我将调用JNI的类放到一个包里面就出错,如果没有包就可以,什么原因?怎么解决???
- 求救:如何将通过socket将 一个String和<CRLF>.<CRLF> 一起传给服务器端
- ++++++新来的。问一:大家都用JAVA的什么编译环境(比如C++有人用VC++,有人用BC++)?+++++
- 为什么我的cpu达到了100%
- HelloWorld的问题。。。
- 不小心掉电子政务里了
所以出现这个问题。