„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Fallstudie: Schlüsselwörter zählen

Fallstudie: Schlüsselwörter zählen

Veröffentlicht am 31.07.2024
Durchsuche:811

Case Study: Counting Keywords

Dieser Abschnitt stellt eine Anwendung vor, 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 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 die Anzahl 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 HashSets für dieses Programm am effizientesten.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/paulike/case-study-counting-keywords-4kfa?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3