laro, vou fornecer uma estrutura básica para atender às suas solicitações em Java. Certifique-se de adaptar e aprimorar conforme necessário.
java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class ContadorPalavras {
private Map<String, Integer> frequenciaPalavras;
public ContadorPalavras() {
this.frequenciaPalavras = new HashMap<>();
}
public void contarFrequencia(String caminhoArquivo) {
try (BufferedReader br = new BufferedReader(new FileReader(caminhoArquivo))) {
String linha;
while ((linha = br.readLine()) != null) {
String[] palavras = linha.split("\\s+");
for (String palavra : palavras) {
palavra = palavra.toLowerCase(); // Considerando diferenciação de maiúsculas e minúsculas
frequenciaPalavras.put(palavra, frequenciaPalavras.getOrDefault(palavra, 0) + 1);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public int consultarFrequencia(String palavra) {
return frequenciaPalavras.getOrDefault(palavra.toLowerCase(), 0);
}
public void gerarRelatorio() {
System.out.println("Relatório de Frequência de Palavras:");
for (Map.Entry<String, Integer> entry : frequenciaPalavras.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue() + " vezes");
}
}
public void gerarRelatorioPalavra(String palavra) {
int frequencia = consultarFrequencia(palavra);
System.out.println("Relatório para a palavra '" + palavra + "':");
System.out.println("A palavra '" + palavra + "' aparece " + frequencia + " vezes.");
}
public static void main(String[] args) {
ContadorPalavras contador = new ContadorPalavras();
contador.contarFrequencia("caminho/do/seu/arquivo.txt");
contador.gerarRelatorio();
contador.gerarRelatorioPalavra("exemplo");
}
}
Certifique-se de substituir “caminho/do/seu/arquivo.txt” pelo caminho real do seu arquivo de texto. Este é um exemplo básico, e você pode estender ou modificar conforme necessário para atender aos requisitos específicos do seu projeto.