【发布时间】:2012-04-08 00:21:31
【问题描述】:
我对 String 的 contains 和 replaceAll 方法做了一些研究。
char c = '*';
String str = "1220"+c+""+c+""+c+""+c+""+c+"23";
System.out.println(str.contains(c+""));
System.out.println(str.contains("["+c+"]"));
System.out.println(str.contains("\\"+c));
System.out.println(str.replaceAll("["+c+"]", "X"));
System.out.println(str.replaceAll("\\"+c, "X"));
System.out.println(str.replaceAll(c+"", "X"));
结果: 当 c = '*' 或 '^' 或 '+' 时
true
false
false
1220XXXXX23
1220XXXXX23
java.util.regex.PatternSyntaxException
当 c = '#' or '~' or '%' or '' or '=' or '&' or '@' or '-' or '!'
true
false
false
1220XXXXX23
1220XXXXX23
1220XXXXX23
当 c = '$'
true
false
false
1220XXXXX23
1220XXXXX23
1220$$$$$23X
当 c = '|'
true
false
false
1220XXXXX23
1220XXXXX23
X1X2X2X0X|X|X|X|X|X2X3X
我想知道这背后的理论/规则是什么?
【问题讨论】:
标签: java string replaceall contain