Esta seção apresenta um aplicativo que conta o número de palavras-chave em um arquivo fonte Java. Para cada palavra em um arquivo fonte Java, precisamos determinar se a palavra é uma palavra-chave. Para lidar com isso de forma eficiente, armazene todas as palavras-chave em um HashSet e use o método contains para testar se uma palavra está no conjunto de palavras-chave. O código abaixo fornece este programa.
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"}; SetkeywordSet = 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; } }
Insira um arquivo fonte Java: c:\Welcome.java
O número de palavras-chave em c:\Welcome.java é 5
Insira um arquivo fonte Java: c:\TTT.java
Arquivo c:\TTT.java não existe
O programa solicita que o usuário insira um nome de arquivo de origem Java (linha 9) e lê o nome do arquivo (linha 10). Se o arquivo existir, o método countKeywords é invocado para contar as palavras-chave no arquivo (linha 15).
O método countKeywords cria um array de strings para as palavras-chave (linhas 26) e cria um conjunto de hash a partir deste array (linhas 28). Em seguida, ele lê cada palavra do arquivo e testa se a palavra está no conjunto (linha 35). Nesse caso, o programa aumenta a contagem em 1 (linha 36).
Você pode reescrever o programa para usar um LinkedHashSet, TreeSet, ArrayList ou LinkedList para armazenar as palavras-chave. No entanto, usar um HashSet é o mais eficiente para este programa.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3