Java | PTA练习:文件统计

题目要求

编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。

代码示例

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        String pathString = "C:\\Users\\86137\\Desktop\\";
        Scanner sin = new Scanner(System.in);
        System.out.println("请输入文件名称:");
        pathString+=sin.next();
        File f = new File(pathString);
        Map<String, Integer> map = new HashMap<String, Integer>();
        Map<Character, Integer> map1 = new HashMap<Character, Integer>();
        if (!f.exists())
        {
            System.out.println("creating...");
            try {
                f.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileReader fReader = new FileReader(f);
            Scanner in = new Scanner(fReader);
            String aString = in.nextLine();
            while(in.hasNext()) {
                String [] strings = aString.split(" ");
                for(String s:strings) {
                    if(map.containsKey(s)) {
                        map.put(s, map.get(s)+1);
                    }
                    else {
                        map.put(s, 1);
                    }
                    for(int i=0;i<s.length();i++) {
                        if(map1.containsKey(s.charAt(i))) {
                            map1.put(s.charAt(i), map1.get(s.charAt(i))+1);
                        }
                        else {
                            map1.put(s.charAt(i), 1);
                        }
                    }
                }
                aString = in.nextLine();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("字符数目统计:");
        map1.forEach((k,v)->
            System.out.println(k+":"+v)
        );
        System.out.println("单词数目统计:");
        map.forEach((k,v)->
            System.out.println(k+":"+v)
        );
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_48419914/article/details/121460687