首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

正则的奇怪有关问题?

2011-12-08 
正则的奇怪问题???StringBuildersbnewStringBuilder( !--fkls-- faaa )PatternpPattern.compile(

正则的奇怪问题???
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

热点排行