public String replaceSpan(String data)
      {
    
       String strdata=data;
       String span=" <SPAN class=\"ellipsis\">";
for(int i=0;i<20;i++)
{
int begin_span=strdata.indexOf(span);
int end_span=strdata.indexOf(span,begin_span+10);
//System.out.println(begin_span);
String str=strdata.substring(begin_span,end_span+35);
if(str!="" || str!=null)
{
strdata=strdata.replaceAll(str,"");
}
}
return strdata;
      }
为什么返回出来的strdata没有被替换 strdata=strdata.replaceAll(str,"");这句话没有执行呀 不知道哪的逻辑出问题了 谢谢了

解决方案 »

  1.   


    !str.equal("")
    NOT
    str!=""   
      

  2.   

    strdata=strdata.replaceAll(str,""); 这句换成下面这句, 就不用正则了
    strdata=Pattern.compile(str, Pattern.LITERAL).matcher(strdata).replaceAll("");可以看下String.replaceAll 的源码, 在产生正则表达式时加个参数 Pattern.LITERAL 即不做转换了
      

  3.   

    可能受到循环的影响 如果即便str是strdata的子串,该部分就会被替换为空
    单独考察一下吧strdata=strdata.replaceAll(str,"");