自己写了一个过滤类似<html>这样的方法,但是出现<123><213123>xyz<12>这样的却过滤不掉!不知道为什么了!花了我很长时间调试,问题好象出现在
for(int ii=posi;ii<step && j<step ;ii++){//把去掉标志的内容放如到数组中
chars[ii]=chars[j++];
}
不知道怎么改了!
代码如下:
public static final String Stringformate1(String original,String regex1,String regex2)
{
int posi=0,posj=0; //posi表示第一个<,posj表示>
char [] chars = original.toCharArray(); //复制字符串到chars数组
int step=chars.length;//字符串长度
char splitter1=regex1.toCharArray()[0];//复制字符到splitter1
char splitter2=regex2.toCharArray()[0];//复制字符到splitter2
for (int i=0;i<step;i++){ //依次读取字符
if(chars[i]==splitter1||chars[0]==splitter1) //如果字符等于<
{
for(int j=i+1;j<step;j++) //依次读取<后的数据直到碰到>,并且把移动标志位
{
if (chars[j]==splitter2)
{
posi=i;
posj=j;
break;
}
}
int j=posj+1;
for(int ii=posi;ii<step && j<step ;ii++){//把去掉标志的内容放如到数组中
chars[ii]=chars[j++];
}
step=step-(posj-posi +1);
i=0;
}

}
String sreturn = String.valueOf(chars);
sreturn = sreturn.substring(0,sreturn.indexOf(splitter1)==-1?sreturn.length():sreturn.indexOf(splitter1));
return sreturn;

}