Heim  >  Artikel  >  Java  >  Fallstudie: Schlüsselwörter zählen

Fallstudie: Schlüsselwörter zählen

王林
王林Original
2024-07-18 08:05:39830Durchsuche

Case Study: Counting Keywords

In diesem Abschnitt wird eine Anwendung vorgestellt, die die Anzahl der Schlüsselwörter in einer Java-Quelldatei zählt. Für jedes Wort in einer Java-Quelldatei müssen wir feststellen, ob es sich bei dem Wort um ein Schlüsselwort handelt. Um dies effizient zu handhaben, speichern Sie alle Schlüsselwörter in einem HashSet und verwenden Sie die Methode contains, um zu testen, ob ein Wort im Schlüsselwortsatz enthalten ist. Der folgende Code gibt dieses Programm an.

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

}

Geben Sie eine Java-Quelldatei ein: c:Welcome.java
Die Anzahl der Schlüsselwörter in c:Welcome.java beträgt 5

Geben Sie eine Java-Quelldatei ein: c:TTT.java
Datei c:TTT.java existiert nicht

Das Programm fordert den Benutzer auf, einen Java-Quelldateinamen einzugeben (Zeile 9) und liest den Dateinamen (Zeile 10). Wenn die Datei vorhanden ist, wird die Methode countKeywords aufgerufen, um die Schlüsselwörter in der Datei zu zählen (Zeile 15).

Die Methode countKeywords erstellt ein Array von Zeichenfolgen für die Schlüsselwörter (Zeilen 26) und erstellt aus diesem Array ein Hash-Set (Zeilen 28). Anschließend liest es jedes Wort aus der Datei und prüft, ob das Wort in der Menge enthalten ist (Zeile 35). Wenn ja, erhöht das Programm den Zählerstand um 1 (Zeile 36).

Sie können das Programm umschreiben, um ein LinkedHashSet, TreeSet, ArrayList oder LinkedList zum Speichern der Schlüsselwörter zu verwenden. Allerdings ist die Verwendung eines HashSet für dieses Programm am effizientesten.

Das obige ist der detaillierte Inhalt vonFallstudie: Schlüsselwörter zählen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Verschachtelte SchleifenNächster Artikel:Verschachtelte Schleifen