zoukankan      html  css  js  c++  java
  • 文件和流课堂实验二

    package test;
    import java.io.File;  
    import java.io.InputStreamReader;
    import java.util.Scanner;
    import java.util.StringTokenizer;
    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter; 
    public class readIO1 {
        static int num=0,a=0;
        static String word[]=new String[1000000];
        static int wordnum[]=new int[1000000];
        public static void main(String args[]) {
            Scanner in = new Scanner(System.in);
            System.out.println("请输入要显示的单词个数:");
            int sum=in.nextInt();
            try{
                String path = "C:\\Users\\lenovo\\Desktop\\Harry Potter and the Sorcerer's Stone.txt";
                File file = new File(path);    
                InputStreamReader reader = new InputStreamReader(new FileInputStream(file));
                BufferedReader br = new BufferedReader(new FileReader(file));
                File file2 = new File("Test1.txt");
                file2.createNewFile();
                BufferedWriter out = new BufferedWriter(new FileWriter(file2));
                String s="";
                s=br.readLine();
                while(s!=null) {
                    s=s.toLowerCase();// 大写转小写
                    StringTokenizer st = new StringTokenizer(s," ".,?;!
    :“”‘: ");
                   while(st.hasMoreElements()) {
                   String str =(String)st.nextElement();
                    for(int j=0;j<num;j++) {
                        if(str.equals(word[j])) {
                            wordnum[j]++;
                            }else a++;
                        }
                    if(a==num) {
                        word[num]=str;
                        wordnum[num]++;
                        num++;
                        }
                    a=0;
                    }
                   s=br.readLine();
                }
                for(int i=0;i<num;i++) {
                    for(int j=i+1;j<num;j++) {
                        if(wordnum[j]>wordnum[i]) {
                            int temp=wordnum[i];
                            wordnum[i]=wordnum[j];
                            wordnum[j]=temp;
                            String Temp=word[i];
                            word[i]=word[j];
                            word[j]=Temp;
                        }
                    }
                }
                for(int i=0;i<sum;i++) {
                    System.out.println(word[i]+" "+wordnum[i]);
                }
                for(int i=0;i<word.length;i++) {
                    out.write(i+":"+word[i]+" ");
                    out.flush();    
                }
                out.close();
                }catch(Exception e){
                    e.printStackTrace();
                    }
        }
        
    }

    实验截图:

     

     实验主要难在文件中单词的分割,将这个问题解决之后就可以将所读单词存入数组,将其统一变为小写,然后比较计数。

  • 相关阅读:
    eclipse使用
    模板模式

    异常处理
    内部类
    面向对象三大特征(三)--多态
    java双指针的简单理解
    简单易懂回溯算法
    《深入理解Java虚拟机》之(一、内存区域)
    Java笔记(第七篇 JDBC操作数据库)
  • 原文地址:https://www.cnblogs.com/yangxionghao/p/11801222.html
Copyright © 2011-2022 走看看