如何把这个Jsp 的方法改成asp.net 的方法呢?
public static String mySubString(String str)
{
//截取掉非法结束,因为后边截取出的东西可能把标签截取了一半
//字符串中可能包含很多开始标签和很多结束标签,要保证开始标签和结束标签都包含在内
//获得其中包含的开始标签并存放到数组中
List begin = new ArrayList();
List end = new ArrayList();
//统计开始标签<和结束标签>的数目
for (int i = 0; i < str.length(); i++)
{
char r = str.charAt(i);
//添加开始符号的位置
if (r == '<')
{
begin.add(i);
}
//统计结束符号的位置,正常情况下开始位置和结束位置是一一对应的
if (r == '>')
{
end.add(i);
}
}
//存放标签的集合
List tag = new ArrayList();
//获得标签
int size = 0;
//当开始的<数量多于>的时候,说明后边的部分标签被截取掉了
if (begin.size() > end.size())
{
//开始标签多的时候,就以结束的标签数量为准
size = end.size();
//这个时候就截取掉最后一个<结束之前的,以方便后边来统一加结束标签
int index = str.lastIndexOf('<');
//重新给进来的字符串赋予新的值
str = str.substring(0, index);
}
else
{
size = begin.size();
}
//循环对应取,
for (int m = 0; m < size; m++)
{
//循环,从begin和end中获取对应的值,即取得相同的下标截取其中的字符串,这样取得的就是标签中的内容
//比如<div>这样根据begin和end中取得的值就为<div>
String ss = str.substring((Integer)begin.get(m), (Integer)end.get(m) + 1);
//只加开始标签,这里记录所有的开始标签
if (ss.indexOf('/') < 0)
{
//判断有没有空格,比如<a htrf="">这种情况就只能取得到<a 后边的就不要了,少了个>在后边加的有
if (ss.indexOf(" ") >= 0)
{
ss = ss.substring(0, ss.indexOf(" "));
}
tag.add(ss);
}
}
//这里要倒着加先出的标签结束符越靠后
for (int n = tag.size(); n > 0; n--)
{
String mystr = tag.get(n - 1).toString();
//判断是否有<和>
if (mystr.indexOf("<") < 0)
{
mystr = "<" + mystr;
}
if (mystr.indexOf(">") < 0)
{
mystr = mystr + ">";
}
//将标签中加入/,比如这里本身取得的是<div>那么就构件成</div>
String strRes = mystr.substring(0, 1) + "/" + mystr.substring(1);
//没有结束的就加结束的就将结束标签加上
if (str.indexOf(strRes) < 0)
{
str += strRes;
}
}
return str;
}