学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的

 学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的书籍中这几个词各自出现的次数, 2015 年······依次类推。

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Scanner;


/**
 * 按年份,将所有书名录入文件中,每行只保存一本书的名字
 */
public class Demo {
    static HashMap<String, Integer> map = new HashMap<>();

    static {
        map.put("Computer", 0);
        map.put("Science", 0);
        map.put("计算机", 0);
        map.put("科学", 0);
    }

    /**
     * 输入存储书名的文件名,检索
     * @param file
     */
    public void calculatorTimes(File file) {
        // 非法输入
        if (!file.exists()) {
            return;
        }

        InputStream input = null;
        Scanner scanner = null;
        try {
            // 用Scanner读入文件输入流
            input = new FileInputStream(file);
            scanner = new Scanner(input);
            scanner.useDelimiter("\n");
            // 对行的书名进行处理
            while (scanner.hasNext()) {
                calculatorTimes(map, scanner.next());
            }

        } catch (java.io.IOException e) {
            e.printStackTrace();
        }

    }

    /**
     * 输入书名,检索其关键字,更新map
     * @param map
     * @param bookName
     */
    public void calculatorTimes(HashMap<String, Integer> map, String bookName) {
        // 非法输入
        if (bookName.length() == 0) {
            return;
        }

        if (bookName.contains("Computer")) {
            map.put("Computer", map.get("Computer")+1);
        } else if (bookName.contains("Science")) {
            map.put("Science", map.get("Science")+1);
        } else if (bookName.contains("计算机")) {
            map.put("计算机", map.get("计算机")+1);
        } else if (bookName.contains("科学")) {
            map.put("科学", map.get("科学") + 1);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_40739833/article/details/81214536
今日推荐