Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要从一个特定的url地址打印出每个单词在文章中使用的次数_Java - Fatal编程技术网

Java 我需要从一个特定的url地址打印出每个单词在文章中使用的次数

Java 我需要从一个特定的url地址打印出每个单词在文章中使用的次数,java,Java,我试图计算与特定url地址关联的单词数量,并按单词出现的次数顺序打印这些单词。现在它读入文件并计数单词,但它逐行打印出来,而不是整个文章的计数。你能帮我把整件事读出来并打印出来吗 在整个段落中,它们的出现将是伟大的 public static void main(String[] args) { try { URL url = new URL("http://webpagehere.txt"); BufferedReader reader = new B

我试图计算与特定url地址关联的单词数量,并按单词出现的次数顺序打印这些单词。现在它读入文件并计数单词,但它逐行打印出来,而不是整个文章的计数。你能帮我把整件事读出来并打印出来吗 在整个段落中,它们的出现将是伟大的

public static void main(String[] args) 
{
    try {
        URL url = new URL("http://webpagehere.txt");
        BufferedReader reader = new BufferedReader
                (new InputStreamReader(url.openStream()));
        String line;
        int i=0;
        while ((line = reader.readLine()) != null) {
            i++;
            System.out.println("Line " + i + "\t" + line);
             // Create a TreeMap to hold words as key and count as value
Map<String, Integer> map = new TreeMap<String, Integer>();

String[] words = line.split("[ \n\t\r.,;:!?(){}]");
for (int j = 0; j < words.length; j++) {
  String key = words[j].toLowerCase();

  if (key.length() > 0) {
    if (!map.containsKey(key)) {
      map.put(key, 1);
    }
    else {
      int value = map.get(key);
      value++;
      map.put(key, value);
    }
  }
}

// Get all entries into a set
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();

// Get key and value from each entry
for (Map.Entry<String, Integer> entry: entrySet)
  System.out.println(entry.getKey() + "\t" + entry.getValue());


        }

        reader.close();
    } catch (UnknownHostException e) {
        JOptionPane.showMessageDialog(null, "Unknown host. Abort.");
    } catch (NoRouteToHostException e) {
        JOptionPane.showMessageDialog(null,
                                      "Cannot reach remote host. Abort.");
    } catch (java.lang.Exception e) {
        e.printStackTrace();
    }

}
}
publicstaticvoidmain(字符串[]args)
{
试一试{
URL=新URL(“http://webpagehere.txt");
BufferedReader reader=新的BufferedReader
(新的InputStreamReader(url.openStream());
弦线;
int i=0;
而((line=reader.readLine())!=null){
i++;
System.out.println(“行”+i+“\t”+行);
//创建一个树形图,将单词作为键保存,并将其作为值计算
Map Map=newtreemap();
String[]words=line.split(“[\n\t\r,;:!?(){}]”);
for(int j=0;j0){
如果(!map.containsKey(键)){
地图放置(图例1);
}
否则{
int value=map.get(键);
值++;
map.put(键、值);
}
}
}
//将所有条目放入一个集合
Set entrySet=map.entrySet();
//从每个条目中获取键和值
for(Map.Entry:entrySet)
System.out.println(entry.getKey()+“\t”+entry.getValue());
}
reader.close();
}捕获(未知后异常e){
showMessageDialog(null,“未知主机.中止”);
}捕获(NOROUTETHOSTEException e){
JOptionPane.showMessageDialog(null,
“无法到达远程主机。中止。”);
}catch(java.lang.e异常){
e、 printStackTrace();
}
}
}

您只需将
映射的初始化和打印移动到while循环之外即可

public static void main(String[] args) 
    {
        try {
            URL url = new URL("http://webpagehere.txt");
            BufferedReader reader = new BufferedReader
                    (new InputStreamReader(url.openStream()));
            String line;
            int i=0;
            Map<String, Integer> map = new TreeMap<String, Integer>();
            while ((line = reader.readLine()) != null) {
                i++;
                System.out.println("Line " + i + "\t" + line);
                // Create a TreeMap to hold words as key and count as value

                String[] words = line.split("[ \n\t\r.,;:!?(){}]");
                for (int j = 0; j < words.length; j++) {
                    String key = words[j].toLowerCase();

                    if (key.length() > 0) {
                        if (!map.containsKey(key)) {
                            map.put(key, 1);
                        }
                        else {
                            int value = map.get(key);
                            value++;
                            map.put(key, value);
                        }
                    }
                }
            }
            reader.close();

            // Get all entries into a set
            Set<Map.Entry<String, Integer>> entrySet = map.entrySet();

            // Get key and value from each entry
            for (Map.Entry<String, Integer> entry: entrySet)
                System.out.println(entry.getKey() + "\t" + entry.getValue());

        } catch (UnknownHostException e) {
            System.out.println("Unknown host. Abort.");
        } catch (NoRouteToHostException e) {
            System.out.println("Cannot reach remote host. Abort.");
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }

    }
publicstaticvoidmain(字符串[]args)
{
试一试{
URL=新URL(“http://webpagehere.txt");
BufferedReader reader=新的BufferedReader
(新的InputStreamReader(url.openStream());
弦线;
int i=0;
Map Map=newtreemap();
而((line=reader.readLine())!=null){
i++;
System.out.println(“行”+i+“\t”+行);
//创建一个树形图,将单词作为键保存,并将其作为值计算
String[]words=line.split(“[\n\t\r,;:!?(){}]”);
for(int j=0;j0){
如果(!map.containsKey(键)){
地图放置(图例1);
}
否则{
int value=map.get(键);
值++;
map.put(键、值);
}
}
}
}
reader.close();
//将所有条目放入一个集合
Set entrySet=map.entrySet();
//从每个条目中获取键和值
for(Map.Entry:entrySet)
System.out.println(entry.getKey()+“\t”+entry.getValue());
}捕获(未知后异常e){
System.out.println(“未知主机.中止”);
}捕获(NOROUTETHOSTEException e){
System.out.println(“无法到达远程主机。中止”);
}catch(java.lang.e异常){
e、 printStackTrace();
}
}

您的
映射
来存储单词,它的出现在while循环中声明。只需将声明移出while循环即可

        int i = 0;
        Map<String, Integer> map = new TreeMap<String, java.lang.Integer>();
        while ((line = reader.readLine()) != null) {
inti=0;
Map Map=newtreemap();
而((line=reader.readLine())!=null){

我想你指的是实际网页中的文字,而不是url本身?是的,网页中的文字谢谢你的帮助。我现在已经开始工作了。我知道这与我的定位有关,我只是找不到错误。再次感谢!!!!!如果你认为这个答案最有帮助,请单击左侧的复选标记e向上和向下箭头“接受”答案。对不起,第一次发布内容