zoukankan      html  css  js  c++  java
  • 作业4.2

    结对对象:严瑞   微博地址:http://www.cnblogs.com/yanrui666/p/5303941.html   github:https://github.com/yanrui666/yanrui123/blob/master/作业4    贡献比例:50%/50%

    读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率。

    • 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似)
    • 解释:
      • 选项 -f 表示打开某一文件(filename.txt)
      • 选项 -w 表示统计其后单词(word)在打开的文件(filename.txt)中的频率。

    java输入和特定单词频率统计统计:

    Scanner s=new Scanner(System.in);

    System.out.println("请输入要查找的单词: ");

    String str = s.next();

    int count=0;

    for(int j=0;j<words.length;j++)

    {if(str.equals(words[j]))  count++;}

    System.out.println("所查单词频率为:"+count);

    源程序:

    import java.util.*;

    import java.io.*;

    public class WordsRate

    {

        public static void main(String[] args) throws Exception

       {

           BufferedReader infile = new BufferedReader(new FileReader("D:\A_Tale_of_Two_Cities.txt"));

           String string;

           String file = null;

           while ((string = infile.readLine()) != null) { file += string; }

           file = file.toLowerCase();

           file = file.replaceAll("[^A-Za-z]", " ");

           file = file.replaceAll("\s+", " ");

           String words[];

           words = file.split("\s+");

           Map<String, Integer> hashMap = new HashMap<String, Integer>();

           for (int i = 0; i < words.length; i++)

           {

                String key = words[i];

                if (hashMap.get(key) != null)

                {

                     int value = ((Integer) hashMap.get(key)).intValue();

                     value++;

                     hashMap.put(key, new Integer(value));

                 }

                 else { hashMap.put(key, new Integer(1)); }

           }

           Map<String, Object> treeMap = new TreeMap<String, Object>(hashMap);

           Map<String, Object> treeMap1 = new TreeMap<String, Object>(hashMap);

           BufferedWriter bw = new BufferedWriter(new FileWriter("result1.txt"));

           Iterator iter = treeMap.entrySet().iterator();

           String ss1[]=new String[treeMap.size()];;

           int ss2[]=new int[treeMap.size()];

           int i=0;

           while (iter.hasNext())

           {

                Map.Entry entry = (Map.Entry) iter.next();

                int val = (Integer)entry.getValue();

                String key =(String) entry.getKey();

                ss1[i]=key;

                ss2[i]=val;

                i++;

           }

           int sValue=0;

           String sKey="";

           for(int j=0;j<ss2.length;j++)

           {

                for(int k=0;k<i;k++)

                {

                      if(ss2[j]>ss2[k])

                      {

                            sValue=ss2[j];

                            sKey=ss1[j];

                            ss2[j]=ss2[k];

                            ss1[j]=ss1[k];

                            ss2[k]=sValue;

                            ss1[k]=sKey;

                      }

                 }

            }

            int[] strLengths = new int[ss2.length];

            for(int j=0 ;j<ss2.length; j++)

            {  

                 strLengths[j] = ss1[j].length();

            }

            Scanner s=new Scanner(System.in);

            System.out.println("请输入要查找的单词: ");

            String str = s.next();

            int count=0;    

            for(int j=0;j<words.length;j++)

            { 

                 if(str.equals(words[j]))  count++;

             }

            System.out.println("所查单词频率为:"+count);

            for(int j=0;j<ss2.length;j++)

            {

                  if(strLengths[j]>=4)  System.out.println(ss1[j]+"="+ss2[j]);

                  bw.write(ss1[j]+"="+ss2[j]);

                  bw.newLine(); bw.flush();

            }

        }

    }

    运行结果:

    心得:经过了第一次的学习这次用java更熟悉了。

  • 相关阅读:
    python的参数传递
    django的objects级别的权限控制
    django如何将mysql数据库转化为model
    django的orm查询使用in的保序
    多用户OFDM系统资源分配研究
    第一代到第四代多址技术:从FDMA、TDMA、CDMA到OFDMA
    Kaggle比赛总结
    4 二维数组中的查找 JavaScript
    5 替换空格 JavaScript
    简单的HTTP协议
  • 原文地址:https://www.cnblogs.com/like1413042029/p/5330218.html
Copyright © 2011-2022 走看看