Java 带树映射的字计数

Java 带树映射的字计数,java,regex,text-files,treemap,Java,Regex,Text Files,Treemap,我正在编写一个程序来读取一个文本文件,存储在一个树形图中,然后将词频(wordcount)打印到控制台。我不断得到FileNotFoundException“我想”我差不多完成了,剩下的代码。任何帮助、指点、建议和提示都将不胜感激。谢谢。代码如下 导入java.util.* /** * *@作者 * */ 公共类字数{ public static void main(String[] args) { // TODO Auto-generated method stub Text

我正在编写一个程序来读取一个文本文件,存储在一个树形图中,然后将词频(wordcount)打印到控制台。我不断得到FileNotFoundException“我想”我差不多完成了,剩下的代码。任何帮助、指点、建议和提示都将不胜感激。谢谢。代码如下

导入java.util.*

/** * *@作者 * */

公共类字数{

public static void main(String[] args) {
    // TODO Auto-generated method stub
    TextFileInput take = new TextFileInput("noteFile.txt");

    String m = take.readLine();
    String [] input = m.split("[ \n\t\r,.;:!?(){}}]");

TreeMap <String, Integer> myMap  = new TreeMap <String, Integer> ();

    /**Set set = myMap.entrySet(); 
    Iterator i = set.iterator(); 
    Map.Entry <String, Integer> me; **/

    for(int f = 0; f < input.length; f++) {         
        String key = input[f].toUpperCase();
        if(input[f].length() > 1) {
            if(myMap.get(key) == null) {
                myMap.put(key, 1);
                }   
            else {
                    int value = myMap.get(key).intValue();
                    value++;
                    myMap.put(key, value);
            }
        }       
    }       
    /**while(i.hasNext()) { 
           me = (Map.Entry)i.next(); 
           System.out.print(me.getKey() + ": "); 
           System.out.println(me.getValue()); **/


    for(Map.Entry<String, Integer> entry : myMap.entrySet()) {
        System.out.println(entry.getKey() + " : "+ entry.getValue());
    }

}
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
TextFileInput take=newtextfileinput(“noteFile.txt”);
字符串m=take.readLine();
字符串[]输入=m.split(“[\n\t\r,.;:!?(){}]”;
TreeMap myMap=newtreemap();
/**Set=myMap.entrySet();
迭代器i=set.Iterator();
地图。输入我**/
对于(intf=0;f1){
if(myMap.get(key)==null){
myMap.put(键,1);
}   
否则{
int value=myMap.get(key.intValue();
值++;
myMap.put(键、值);
}
}       
}       
/**而(i.hasNext()){
me=(Map.Entry)i.next();
System.out.print(me.getKey()+“:”);
System.out.println(me.getValue())**/
对于(Map.Entry:myMap.entrySet()){
System.out.println(entry.getKey()+“:”+entry.getValue());
}
}
}

}TextFileInput-我对此不确定。您可以使用文件和扫描仪读取文件。 给出文件的绝对路径。例如:C://notepad.txt(适用于windows)

此外,您正在从文件中读取一行。您可以将其添加到while循环中。要打印树形图,可以执行以下操作:

 for(String entry : myMap.keySet()) {
    System.out.println(entry + " : "+ myMap.get(entry));
}
完整的代码如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class WordCount {

public static void main(String[] args) throws FileNotFoundException {

    File file = new File("C://notepad.txt");
    Scanner scanner=new Scanner(file);

    TreeMap <String, Integer> myMap  = new TreeMap <String, Integer> ();

    while(scanner.hasNext())
    {
    String m = scanner.nextLine();
    String [] input = m.split("[ \n\t\r,.;:!?(){}}]");

    for(int f = 0; f < input.length; f++) {         
        String key = input[f].toUpperCase();
        if(input[f].length() > 1) {
            if(myMap.get(key) == null) {
                myMap.put(key, 1);
                }   
            else {

                    myMap.put(key, (myMap.get(key))+1);
            }
        }       
    }       
    }

    for(String entry : myMap.keySet()) {
        System.out.println(entry + " : "+ myMap.get(entry));
    }

}

}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.*;
公共类字数{
公共静态void main(字符串[]args)引发FileNotFoundException{
File File=新文件(“C://notepad.txt”);
扫描仪=新扫描仪(文件);
TreeMap myMap=newtreemap();
while(scanner.hasNext())
{
字符串m=scanner.nextLine();
字符串[]输入=m.split(“[\n\t\r,.;:!?(){}]”;
对于(intf=0;f1){
if(myMap.get(key)==null){
myMap.put(键,1);
}   
否则{
myMap.put(key,(myMap.get(key))+1);
}
}       
}       
}
for(字符串项:myMap.keySet()){
System.out.println(entry+“:”+myMap.get(entry));
}
}
}

我不确定这是您的问题中的错误还是您的真实代码中的错误,但您在最后还有一些额外的
}
。另外,“我一直在获取
FileNotFoundException
”您如何运行代码?您的控制台在哪个位置?您试图读取的文件位于何处?“…和其他一些”其他错误是什么?找到的文件位于注释文件通常所在的位置。它位于JRE系统的正下方,但不在其中。我不知道这个地方叫什么(对不起)。我将代码作为Java文件运行。我使用TextFileInput读取中的代码。