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????
------解决方案--------------------
//创建一个初始长度是used的StringBuffer,但他并没实际内容
//此时sbuf1.lenght()=0
StringBuffer sbuf1=new StringBuffer(used);
//此时你在位置j放入字符1,肯定会出现StringIndexOutOfBoundsException错误
sbuf1.setCharAt(j, '1 ');
sbuf1.setCharAt(int pos,char c)的使用条件是pos
------解决方案--------------------
while (m.find()){
sb.delete(m.start(), m.end());//这里已经改变sb了,while里面m.find针对的是原先的sb
m = p.matcher(sb);
}
或者改用if