读取txt文档中单词,并计算单词出现的次数(英文文档)

2013/6/6去杭州博克软件onsite interview。哥之前做足了准备,几乎把自身的毕生所学全部温习了,以为万事俱备了。

马的,下午14:00过去的时候,前台居然在发粽子,让我坐一下,等会儿HR会找人来面我。我在那里等了十来分钟。然后HR叫我过去,然后把我领到了一个小房间,给我端了杯水,叫我再坐一会,技术面试的人马上就来了。哥无聊在那里坐等看了会杂志,然后一个留了一小啜胡子的中年男子进来了(B,现在回想起来真的想问问他,你丫能力很强吗,哥也出个题目你丫,能在半个小时内做好吗,这个j家伙估计有33岁了)。哥心里做好了准备就等着有人来问我了。靠,他妈自我介绍了一下说,这次面试主要考编程技能。然后其他的啥都没问。介绍了一下大致情况之后,给我拿来一份题目。然后利用间隙的时间,跟哥用英文交流了一下。问了最近的项目情况,主要的日常工作内容,项目的开发环境。哥就用不是很流利的英文对答如流了。然后,说那就开始做那份材料。说看一下,然后把需要跟他讲一下。

其实这个考察内容并不是很难,就是读取一个txt文档到一个String字符串中,并打印出来,然后找出这个txt中出现了多少个word,重复的不算,并且计算出每个word出现的次数。可以上网。时间一个小时。

哥当时看到这个题目的时候,真的觉得是有点简单的。但是我居然没有计算出单词出现的次数。有点小紧张,但是还是很认真的在做了。。。

时间一分一秒过去,,,中间他妈的输入法还以一直双拼,哥想把它移除出输入法设置,JImmy大叔居然还不让,你丫还一直坐在我身边,你让我能全心投入到工作中吗。。。靠,他妈的哥做到3:15的时候,他居然说可以了。他看我用set来保存这些单词的时候,我不小心用了new Set,就说我java技术不行。我靠,你丫会不会看人哦。就因为这个就说java技术不扎实。靠,当时我一直还沉浸在为什么这么简单的问题都不能解答,而对自己的能力产生了严重的怀疑。丫的要是换成是现在,哥也出一道题目给你做下,首先你丫先把自己的拿到题目在20分钟内给我解决先,然后。。。还是等我想到出什么题目了,再去找他。哥不当面跟他对质真的心里很难受。。。Fuck 

  1. /**  
  2.  * <br>  
  3.  * do what you want to do and never stop it.  
  4.  * <br>  
  5.  */  
  6. package org.luch.test;  
  7.   
  8. import java.io.BufferedReader;  
  9. import java.io.File;  
  10. import java.io.FileNotFoundException;  
  11. import java.io.FileReader;  
  12. import java.io.IOException;  
  13. import java.util.HashSet;  
  14. import java.util.Map;  
  15. import java.util.Set;  
  16. import java.util.TreeMap;  
  17.   
  18. /**  
  19.  * @author Jack 2013-6-6 <br>  
  20.  */  
  21. public class pringWord {  
  22.   
  23.     public static String filename = "src/test.txt";  
  24.     public static StringBuffer sb = null;   
  25.     /**  
  26.      * @param args  
  27.      */  
  28.     public static void main(String[] args) {  
  29.         txt2String(filename);  
  30.         printSingleWord(sb.toString());  
  31.         try {  
  32.             wordCounter();  
  33.         } catch (FileNotFoundException e) {  
  34.             e.printStackTrace();  
  35.         }  
  36.     }  
  37.       
  38.     /**  
  39.      * 计算单词的出现次数  
  40.      * @throws FileNotFoundException  
  41.      */  
  42.     public static void wordCounter() throws FileNotFoundException{  
  43.         BufferedReader br = null;  
  44.         try {  
  45.             br = new BufferedReader(new FileReader(new File(filename)));  
  46.             String inputLine = null;  
  47.             TreeMap<String, Integer> map = new TreeMap<String, Integer>();  
  48.               
  49.             while((inputLine = br.readLine()) != null) {  
  50.                 String[] words = inputLine.split("[ \n\t\r.,;:!?(){}]");  
  51.                 for(int i = 0; i < words.length; i++) {  
  52.                     String key = words[i].toLowerCase();  
  53.                     if(key.length() > 0){  
  54.                         if(map.get(key) == null){  
  55.                             map.put(key, 1);  
  56.                         } else{  
  57.                             int times = map.get(key).intValue();  
  58.                             times++;  
  59.                             map.put(key, times);  
  60.                         }  
  61.                     }  
  62.                 }  
  63.             }  
  64.   
  65.             Set<Map.Entry<String, Integer>> entrySet = map.entrySet();  
  66.             for(Map.Entry<String, Integer> entry: entrySet){  
  67.                 System.out.println(entry.getKey() + "\t" + entry.getValue());  
  68.             }  
  69.       
  70.         } catch (IOException e) {  
  71.             e.printStackTrace();  
  72.         }  
  73.     }  
  74.       
  75.     /**  
  76.      * 打印出txt文档中出现的每一个单词(重复的只打印一遍)  
  77.      * @param txt  
  78.      */  
  79.     public static void printSingleWord(String txt) {  
  80.         String str;  
  81.         if(txt == null || txt.length()==0){  
  82.             return ;  
  83.         }  
  84.         str = txt.replaceAll(",", "");  
  85.         str = str.replace(".", "");  
  86.         String[] strs = str.split(" ");  
  87.         Set set = new HashSet();  
  88.         for(int i = 0; i < strs.length; i++) {  
  89.             set.add(strs[i]);  
  90.         }  
  91.         String temp = set.toString();  
  92.         temp = temp.substring(1, temp.length()-1);  
  93.           
  94.         String[] tems = temp.split(",");  
  95.         for(int i = 0; i < tems.length; i++) {  
  96.             System.out.println(tems[i]);  
  97.         }  
  98.     }  
  99.       
  100.     /**  
  101.      * 把txt文档保存到String字符串中,并打印出来。  
  102.      * @param filename  
  103.      */  
  104.     public static void txt2String(String filename) {  
  105.         try {  
  106.             FileReader read = new FileReader(filename);  
  107.             BufferedReader br = new BufferedReader(read);  
  108.             String row;  
  109.             StringBuffer bf = new StringBuffer();  
  110.             while ((row = br.readLine()) != null) {  
  111.                 bf.append(row);  
  112.             }  
  113.             sb = bf;  
  114.             System.out.println(bf.toString());  
  115.         } catch (FileNotFoundException e) {  
  116.             e.printStackTrace();  
  117.         } catch (IOException e) {  
  118.             e.printStackTrace();  
  119.         }  
  120.     }  
  121. }  

杭州博客软件面试流程:

查看简历-->HR通过查看简历来挑选面试的对象。

所以第一面是HR电话对你的面试,面试的内容往往都是英文的简单交流,简单阐述你的项目情况等等

第二面是:技术电面。往往是找个公司内部员工对你进行面试。这个就要看员工的具体背景,和他想了解你的一些背景,技术能力,知识面什么的。不过一般不外乎SSH,Ibatis,Java Core 。DataBase优化,设计模式等等。其实还是可以做一些准备的。

第三面:onsite interview。就是技术的一个现场面试。我没有想到会是项目开发。哈哈。。。。这块内容也还是可以准备的,因为不会要求做很难的东西,但是自己的平时还是要有积累的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值