Maison >Java >javaDidacticiel >Étude de cas : compter les mots clés

Étude de cas : compter les mots clés

王林
王林original
2024-07-18 08:05:39864parcourir

Case Study: Counting Keywords

Cette section présente une application qui compte le nombre de mots-clés dans un fichier source Java. Pour chaque mot d'un fichier source Java, nous devons déterminer si le mot est un mot-clé. Pour gérer cela efficacement, stockez tous les mots-clés dans un HashSet et utilisez la méthode contains pour tester si un mot est dans l'ensemble de mots-clés. Le code ci-dessous donne ce programme.

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

}

Entrez un fichier source Java : c:Welcome.java
Le nombre de mots-clés dans c:Welcome.java est de 5

Entrez un fichier source Java : c:TTT.java
Le fichier c:TTT.java n'existe pas

Le programme invite l'utilisateur à saisir un nom de fichier source Java (ligne 9) et lit le nom de fichier (ligne 10). Si le fichier existe, la méthode countKeywords est invoquée pour compter les mots-clés dans le fichier (ligne 15).

La méthode countKeywords crée un tableau de chaînes pour les mots-clés (lignes 26) et crée un jeu de hachage à partir de ce tableau (lignes 28). Il lit ensuite chaque mot du fichier et teste si le mot est dans l'ensemble (ligne 35). Si tel est le cas, le programme augmente le décompte de 1 (ligne 36).

Vous pouvez réécrire le programme pour utiliser un LinkedHashSet, un TreeSet, un ArrayList ou un LinkedList pour stocker les mots-clés. Cependant, l'utilisation d'un HashSet est la plus efficace pour ce programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Boucles imbriquéesArticle suivant:Boucles imbriquées