//括号是英文括号 
String   str_1= "4号楼(地震局家属楼) "; 
String   str_2= "经三路10号院4号楼(地震局家属楼)东1单元1层1室 "; 
String   new_str_1= " "; 
new_str_1=str_2.split(str_1)[0]; 
System.out.println( "new_str_1= "+new_str_1); 
//输出:经三路10号院4号楼(地震局家属楼)东1单元1层1室
//没有达到我想要的输出结果:经三路10号院4号楼(地震局家属楼)由于split的参数正则表达式,对英文的括号() 是特殊字符,故此达不到我要的结果。当然可以用 substring和indexof来联合截取字符串,
new_str_1=str_2.substring(  str_2.indexof(str_1)+str_1.length()  ,   str_2.length()  )但是我的操作是在for循环里的。我测试了跑了一天40个客户端就把内存给搞的outofmemory了。大家给帮帮忙.看我怎么解决这个循环里的效率问题。

解决方案 »

  1.   

    package test;public class Test { /**
     *【描述】:
     *【作者】:alaric 
     *【时间 】:May 17, 2012
     * 
     */
    public static void main(String[] args) {
    String str_1= "4号楼\\(地震局家属楼\\)";  
    String str_2= "经三路10号院4号楼(地震局家属楼)东1单元1层1室 ";  
    String new_str_1= " ";  
    new_str_1=str_2.split(str_1)[0];  
    System.out.println( "new_str_1= "+new_str_1); }}
    这样可以的 我试过了个人技术博客http://www.happyalaric.com
      

  2.   

    把()转义就可以了,一种就是加\\转义,如1L,另一中是放在[]内当作一般字符看待
    String str_1= "4号楼[(]地震局家属楼[)]";  
    另外,你的String str_1= "4号楼(地震局家属楼) ";  后面多了个空格吧