Rumah >Java >javaTutorial >Kajian Kes: Mengira Kata Kunci

Kajian Kes: Mengira Kata Kunci

王林
王林asal
2024-07-18 08:05:39893semak imbas

Case Study: Counting Keywords

Bahagian ini membentangkan aplikasi yang mengira bilangan kata kunci dalam fail sumber Java. Untuk setiap perkataan dalam fail sumber Java, kita perlu menentukan sama ada perkataan itu ialah kata kunci. Untuk mengendalikan perkara ini dengan cekap, simpan semua kata kunci dalam HashSet dan gunakan kaedah mengandungi untuk menguji sama ada sesuatu perkataan berada dalam set kata kunci. Kod di bawah memberikan program ini.

package demo;
import java.util.*;
import java.io.*;

public class CountKeywords {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a Java source file: ");
        String filename = input.nextLine();

        File file = new File(filename);
        if(file.exists()) {
            try {
                System.out.println("The number of keywords in " + filename + " is " + countKeywords(file));
            } catch (Exception e) {
                System.out.println("An error occurred while counting keywords: " + e.getMessage());
            }
        } else {
            System.out.println("File " + filename + " does not exist");
        }
    }

    public static int countKeywords(File file) throws Exception {
        // Array of all Java keywords + true, false and null
        String[] keywordString = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "for", "final", "finally", "float", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while", "true", "false", "null"};

        Set<String> keywordSet = new HashSet<>(Arrays.asList(keywordString));
        int count = 0;

        Scanner input = new Scanner(file);

        while(input.hasNext()) {
            String word = input.next();
            if(keywordSet.contains(word))
                count++;
        }

        return count;
    }

}

Masukkan fail sumber Java: c:Welcome.java
Bilangan kata kunci dalam c:Welcome.java ialah 5

Masukkan fail sumber Java: c:TTT.java
Fail c:TTT.java tidak wujud

Atur cara menggesa pengguna memasukkan nama fail sumber Java (baris 9) dan membaca nama fail (baris 10). Jika fail wujud, kaedah countKeywords digunakan untuk mengira kata kunci dalam fail (baris 15).

Kaedah countKeywords mencipta tatasusunan rentetan untuk kata kunci (baris 26) dan mencipta set cincang daripada tatasusunan ini (baris 28). Ia kemudian membaca setiap perkataan daripada fail dan menguji jika perkataan itu berada dalam set (baris 35). Jika ya, program menambah kiraan sebanyak 1 (baris 36).

Anda boleh menulis semula atur cara untuk menggunakan LinkedHashSet, TreeSet, ArrayList atau LinkedList untuk menyimpan kata kunci. Walau bagaimanapun, menggunakan HashSet adalah yang paling berkesan untuk program ini.

Atas ialah kandungan terperinci Kajian Kes: Mengira Kata Kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Gelung bersarangArtikel seterusnya:Gelung bersarang