写一个程序,要求用hashTable计算一个java源代码中关键字的字频.文件从外部读入。看了好几天有思路,但是没有学过file Reader和使用HashTable。看了好几天的Package。还是没有搞清楚。求高手指点~~

解决方案 »

  1.   

    是不是这样呢:首先把所有的java关键字当作key都放进hashTable里,初始对应的value值都是0;然后读源代码,每读到一个单词,都对照一下hashTable里的key,如果有的话相应的value加1;最后把所有的key和value都打印出来
      

  2.   

    Map<String, Integer> javaKeys = new HashMap<String, Integer>();
    javaKeys.put("public", 0);
    javaKeys.put("import", 0);
    javaKeys.put("package", 0);
    javaKeys.put("void", 0);
    javaKeys.put("class", 0);
    javaKeys.put("static", 0);

    try {
    BufferedReader reader = new BufferedReader(new FileReader(new File("Test.java")));
    String line = reader.readLine();
    while(line != null) {
    String[] words= line.split("[ \t.();:]");
    for (String word : words) {
    System.out.println(word);
    if (javaKeys.containsKey(word))
    {
    int count = javaKeys.get(word);
    count++;
    javaKeys.put(word, count);
    }
    }
    line = reader.readLine();
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    没做统计,基本就是这个样子