StringBuilder sb = new StringBuilder("<!--fkls-->faaa");
Pattern p = Pattern.compile("<!--.+?-->");
Matcher m = p.matcher(sb);
while (m.find())
    sb.delete(m.start(), m.end());为什么总在m.find()这报错StringIndexOutOfBoundsException????

解决方案 »

  1.   

    //创建一个初始长度是used的StringBuffer,但他并没实际内容
    //此时sbuf1.lenght()=0
    StringBuffer sbuf1=new StringBuffer(used);
    //此时你在位置j放入字符1,肯定会出现StringIndexOutOfBoundsException错误 
    sbuf1.setCharAt(j,'1');sbuf1.setCharAt(int pos,char c)的使用条件是pos 
      

  2.   

    while (m.find()){
    sb.delete(m.start(), m.end());//这里已经改变sb了,while里面m.find针对的是原先的sb
    m = p.matcher(sb);
    }或者改用if