有一个字符串。我希望过滤掉一些特别字符。
比如输入 abcdef-deffff=dffff|dffff+  等
我希望过滤掉:-=|+ 
得到新的字符串。
用java开发。我想到的只有两种方式。
一:按过滤字串,进行每一个字符的对原串进行替换工作。
这样的工作比较简单,但是如果字符原串很大,或过滤字串很大。导致String.replaceAll的频繁调用。因为如果String的长度很大的话需要生成的临时String实例会非常多。我指的是Java核心运行机制中的replaceAll方法。
二:按原串中的每一位。进行判断。生成新串可以使用:StringBuilder Out_String = new StringBuilder();
来一位一位的append()。
我的问题是两种方式哪种好一些。哪种性能比要好一些。如果有其它方式。望朋友们不吝赐教!

解决方案 »

  1.   

    有个折中的方法:用正则表达式以你不想要的那些字符为界进行拆分拆分,然后用StringBuilder进行合并。
    剩余的你自己来吧~
      

  2.   

    朋友。你说折中的方法。如果用正则表达式的话。性能可以提高多少。因为我没有怎么用过正则表达式。我知道一些正则表达式。但不晓得正则表达式的运行机制。但我知道我提到的这两种方式都会产生很多的String临时实例。我记得String的各种方法都是以StringBuffer的运行机制来完成的。如果用正则表达式的话。他的运行情况。对于性能方面有多少影响。作为程序员,我认为尽量不产生多余的实例。虽然容器有垃圾回收。
      

  3.   

    其实没有啥,String[] s = String.split("your Regular Expression");
      

  4.   

    replace的方法好一些,毕竟是String 的方法,会比较好