Maison >Java >javaDidacticiel >Étude de cas : compter les mots clés
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!