zoukankan      html  css  js  c++  java
  • 第二次作业

    package world;
    public class word {
    	String value;                                  //具体的单词
    	      int ge;                                     //出现的个数
    	      word next;                                     //将单词链起来
    	     public word(String value,int geshu)            //带参构造函数
    	     {
    	         this.value=value;
    	         this.ge=geshu;
    	         next=null;
    	     }
    	     public word()                                   //空构造函数
    	     {
    	         this.value="";
    	         this.ge=0;
    	         next=null;
    	     }
    	 }                                        
    	
    
    
    package world;
    import java.io.FileReader;
    import java.io.IOException;
    public class r {public static void main(String args[]) throws IOException      //主函数
    {
        word word=new word();                                      //单词的链头
        word lian,xin;                                             
        String str="";
        @SuppressWarnings("resource")
    	FileReader f=new FileReader("D:/Test.txt");                //读取英文文件
        char[] c=new char[1];                                 //每次读取一个字母
        boolean exist=false;                              //判断单词是否存在于  word 链中
        while((f.read(c))!=-1)                              //每次读取一个字母直到最后
        {
            //如果字符为  换行、空格、单引号、双引号、逗号、句号  则为一个单词的结束及另一个单词的开始
            if(String.valueOf(c).equals("
    ")||String.valueOf(c).equals("
    ")||
            		String.valueOf(c).equals(" ")||String.valueOf(c).equals(",")||
            		String.valueOf(c).equals(".")||String.valueOf(c).equals(""")||String.valueOf(c).equals("'"))
            {
                lian=word;
                while(lian!=null)            
                {
                    if(lian.value.equalsIgnoreCase(str))           //如果单词在单词链中存在,则单词个数++
                    {
                        lian.ge++;
                        exist=true;break;
                    }
                    else
                    {
                        lian=lian.next;
                    }
                }
                if(exist==false)                        //如果不存在,则在单词链中添加
                {
                    xin=new word(str,1);
                    xin.next=word.next;
                    word.next=xin;
                    str="";
                }
                else
                {
                    exist=false;
                    str="";
                }
            }
            else                                      //单词
            {
                str+=String.valueOf(c);
            }
        }
        //   循环5次
        for(int i=1;i<=5;i++)                   
        {
            xin=new word("",0);
            lian=word.next;
            //找到单词链中个数最多的
            while(lian!=null)
            {
                if(lian.ge>xin.ge)
                {
                    xin=lian;
                }
                lian=lian.next;
            }
            //输出单词链中个数最多的
            System.out.println("第"+i+"个 :"+xin.value+"个数:"+xin.ge);
            lian=word;
            //删除单词链中单词个数最多的
            while(lian.next!=null)
            {
                if(lian.next.value.equalsIgnoreCase(xin.value))
                {
                    lian.next=lian.next.next;
                    break;
                }
                lian=lian.next;
            }
        }
    
    }
    }
    

      从百度上借鉴了一下,不是太清楚,

    思想

    首先建立一个文件,文件读取,运用链表,按字符读取,当遇到换行,空格,符号做为一个单词,遍历链表统计单词数量并输出数量最多的五个,输出。

    
    
  • 相关阅读:
    【iOS】找工作的面试题集锦
    APP项目优化--启动速度优化篇
    【Swift】Timer定时器到底准不准确?
    leetcode刷题 495~
    leetcode刷题 464~
    leetcode刷题 441~
    leetcode刷题 420~
    leetcode刷题 396~
    leetcode刷题 373~
    leetcode刷题 307~
  • 原文地址:https://www.cnblogs.com/qq1793033075/p/9776177.html
Copyright © 2011-2022 走看看