ホームページ  >  記事  >  Java  >  ケーススタディ: キーワードのカウント

ケーススタディ: キーワードのカウント

王林
王林オリジナル
2024-07-18 08:05:39830ブラウズ

Case Study: Counting Keywords

このセクションでは、Java ソース ファイル内のキーワードの数をカウントするアプリケーションを紹介します。 Java ソース ファイル内の各単語について、その単語がキーワードであるかどうかを判断する必要があります。これを効率的に処理するには、すべてのキーワードを HashSet に保存し、contains メソッドを使用して、単語がキーワード セットに含まれているかどうかをテストします。以下のコードはこのプログラムを提供します。

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;
    }

}

Java ソース ファイルを入力します: c:Welcome.java
c:Welcome.java のキーワードの数は 5

です

Java ソース ファイルを入力します: c:TTT.java
ファイル c:TTT.java が存在しません

プログラムはユーザーに Java ソース ファイル名の入力を求め (9 行目)、ファイル名を読み取ります (10 行目)。ファイルが存在する場合、countKeywords メソッドが呼び出され、ファイル内のキーワードがカウントされます (15 行目)。

countKeywords メソッドは、キーワードの文字列の配列を作成し (26 行目)、この配列からハッシュ セットを作成します (28 行目)。次に、ファイルから各単語を読み取り、その単語がセット内にあるかどうかをテストします (行 35)。そうであれば、プログラムはカウントを 1 増やします (行 36)。

LinkedHashSetTreeSetArrayList、または LinkedList を使用してキーワードを保存するようにプログラムを書き直すことができます。ただし、このプログラムでは HashSet を使用するのが最も効率的です。

以上がケーススタディ: キーワードのカウントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。