题目描述:
找出html文件(vacation.htm)中的所有标签名并显示出来。*不要使用正则表达式。
代码:
import java.io.*;
class ShowTags{
public static void main(String[] args)throws IOException{
String content = readFile("vacation.htm");
int len = content.length();
/*for(int i = 0; i < content.length();i++)
{
System.out.print(content.charAt(i));
}*/
//char [] ar = content.toCharArray();
int begin = 0, end = 0;
for(int i = 0; i < len;)
{
if((content.charAt(i) == '<')
&& (content.charAt(i+1) != '!')
&& (content.charAt(i+1) != '/'))
{
begin = i;
for(int j = i+1 ; j < len ; j++)
{
if((content.charAt(j) == ' ') || (content.charAt(j) == '>'))
{
end = j;
i = j + 1;
System.out.println(content.substring(begin+1, end));
break;
}
}
}
else
{
i++;
}
}
}
static String readFile(String fileName) throws IOException{
StringBuilder sb = new StringBuilder("");
int c1;
FileInputStream f1= new FileInputStream(fileName);
InputStreamReader in = new InputStreamReader(f1, "UTF-8");
while ((c1 = in.read()) != -1) {
sb.append((char) c1);
}
return sb.toString();
}
}
运行结果截图:
注意,这里将注释<!-- -->不当做标签。同时要注意<div>和 <div id = "aa">这两种情况下的区分,前一种是用循环判断是否"<"下一个就是">"了,后者是判断“<”下一个是否是空格,两种情况都应输出相应的标签。