String.replaceAll(str1,str2)方法的缺陷

Posted by 猪头小队长 | 程序设计 | Friday 17 September 2004 16:38

在jdk1.4以前,java中没有现成的字符串替换的方法,jdk1.4以后终于有所改观,提供了此方法。但是此方法不够人性化,没有掩盖它内部的实现方式(使用正则表达式实现)。

例如:
"a.bcd".replaceAll(".","#")

这里,我期望的结果应该是"a#bcd",然后他的返回值却是"#####"。因为在正则表达式中,"."是一个特殊字符,代表任意一个字符。

而我们在使用jdk的时候,应该不管你是怎么实现的,我要的就是将所有的"."转化为"#",所以在jdk的此方法中,应该先将用户输入的字符中所有的特殊字符经过转义之后再使用正则表达式替换。

例如:将"."先替换为"."。等等

这里有一个好玩的东西,如果要将字符串中的""全部转化为"",猜猜该怎么写?
应该是:

"abcd".replaceAll("","");

哈哈

[@more@]

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.