神一样的题目求神一样的答复

edwardfay 2013-04-08 04:17:50
朋友发给我的一个某公司的面试题:
用JAVA写一个WEB程序,可以输入一个URL地址(如:http://www.haodew.com/index.html)和一个关键词(如:电子商务)之后,
点击确定按钮提交,程序返回如下结果:

1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算);

2、 找到在该页面中出现该关键词的倒数第二句话,并将这句话显示出来(提示:html页面的换行是<br />)。


我想说,作为从事一个需要严谨思维行业的人,出的题能否严谨点呢?!
...全文
262 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 3 楼 edwardfay 的回复:
呵呵,其实主要是想讨论下这个题目。 1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算); 首先看这个,java我不太懂,不知道有没有方法只获得一个url页面上的文字,而不包含html标记。 如果有的话,那就简单了。 如果没有,获得的是整个页面的html,那么,css可以控制文字不显示,js也可以控制文字不显示。那就需要分析没有关键词对应的css,js了。 ……
jsoup.jar工具包Element类中有N多方法,有一个是可以只获取页面中的文字
nicholasbobo 2013-04-09
  • 打赏
  • 举报
回复
我认为这个题目不是很严谨,解析HTML有很多需要严格定义的,<p><li><br>还有CSS里的float方向,都能导致页面上的分行显示,这个题目有很多地方的需求是需要严格讨论才能处理的,就这样出个题目给面试的人做,太刁钻
跳蚤图 2013-04-09
  • 打赏
  • 举报
回复
引用 3 楼 edwardfay 的回复:
呵呵,其实主要是想讨论下这个题目。 1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算); 首先看这个,java我不太懂,不知道有没有方法只获得一个url页面上的文字,而不包含html标记。 如果有的话,那就简单了。 如果没有,获得的是整个页面的html,那么,css可以控制文字不显示,js也可以控制文字不显示。那就需要分析没有关键……
1,css控制某个文字不显示的话,这个字就不会出现在页面上,是读不出来的。 2,比如有十句话出现了关键字,打印出第9句。就是这个意思吧。 换行是说 一句话不是根据"。"来分隔的。 比如关键字是"h",有一串字符串"ahh</br>hhb。",这就算两句话。 我觉得你理解偏了
edwardfay 2013-04-08
  • 打赏
  • 举报
回复
呵呵,其实主要是想讨论下这个题目。 1、 该关键字在该页面中出现的次数(指在浏览器窗口上能看到的,其他的不算); 首先看这个,java我不太懂,不知道有没有方法只获得一个url页面上的文字,而不包含html标记。 如果有的话,那就简单了。 如果没有,获得的是整个页面的html,那么,css可以控制文字不显示,js也可以控制文字不显示。那就需要分析没有关键词对应的css,js了。 2、 找到在该页面中出现该关键词的倒数第二句话,并将这句话显示出来(提示:html页面的换行是<br />)。 关键词可以出现多次,也就是“倒数第二句” 也有多句了。而且这个提示是什么意思呢? 告诉我们每一个<br>换行才算一句?
whos2002110 2013-04-08
  • 打赏
  • 举报
回复

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所在的那一行字符串 写的比较潦草
expectbird 2013-04-08
  • 打赏
  • 举报
回复
还好,思路不算 太复杂,但这么点 分,也就只能说到这了

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧