朋友发给我的一个某公司的面试题:
用JAVA写一个WEB程序,可以输入一个URL地址(如:http://www.haodew.com/index.html)和一个关键词(如:电子商务)之后,
点击确定按钮提交,程序返回如下结果:1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算);2、 找到在该页面中出现该关键词的倒数第二句话,并将这句话显示出来(提示:html页面的换行是<br />)。
我想说,作为从事一个需要严谨思维行业的人,出的题能否严谨点呢?!
用JAVA写一个WEB程序,可以输入一个URL地址(如:http://www.haodew.com/index.html)和一个关键词(如:电子商务)之后,
点击确定按钮提交,程序返回如下结果:1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算);2、 找到在该页面中出现该关键词的倒数第二句话,并将这句话显示出来(提示:html页面的换行是<br />)。
我想说,作为从事一个需要严谨思维行业的人,出的题能否严谨点呢?!
public class Test {
public static void main(String args[]) throws IOException{
URL url = new URL("http://www.sina.com");
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"gbk"));
String r;
StringBuffer sb = new StringBuffer("");
while((r=br.readLine())!=null){
sb.append(r+"\n");
}
String tag = "javascript";
int total = 0;
int m = sb.indexOf(tag);
while(m!=-1){
total++;
m = sb.indexOf(tag,m+tag.length());
}
System.out.println(total);
int a = sb.lastIndexOf(tag,sb.length()-1);
a= sb.lastIndexOf(tag,a-1);
int b=sb.lastIndexOf("\n",a);
int e=sb.indexOf("\n",a);
System.out.println(sb.substring(b+1,e));
}
}分别输出"javascript" 在页面中出现的次数, 以及倒数第二个javascript所在的那一行字符串
写的比较潦草
如果有的话,那就简单了。
如果没有,获得的是整个页面的html,那么,css可以控制文字不显示,js也可以控制文字不显示。那就需要分析没有关键词对应的css,js了。2、 找到在该页面中出现该关键词的倒数第二句话,并将这句话显示出来(提示:html页面的换行是<br />)。
关键词可以出现多次,也就是“倒数第二句” 也有多句了。而且这个提示是什么意思呢? 告诉我们每一个<br>换行才算一句?
2,比如有十句话出现了关键字,打印出第9句。就是这个意思吧。
换行是说 一句话不是根据"。"来分隔的。 比如关键字是"h",有一串字符串"ahh</br>hhb。",这就算两句话。
我觉得你理解偏了