今天在开发中遇到了一个需要将文本中的img标签过滤掉,首先考虑到的是使用正则表达式, 想使用
String.replaceAll(String regex, String replacement),可是自己没注意到这个函数返回的值是替换后的我们所有的(其实是新建了一个String对象返回)。
下面是我刚开始写的代码:
其实以上代码只需要两行就可以实现:
String content = "........";
content = content.replaceAll(("<IMG [^>]*>","");
以下是java源码中如何实现该功能的:
通过查看源码比较,发现自己写的代码与源码还是有一定差距的。比如效率方面的处理,他是先做一次判断处理,看有没有匹配,而自己首先就直接创建了一个StringBuffer对象去接收替换后的字符串。
关键一点:还是要看多看java源码,看一些优秀的代码。