Olá pessoal…
Hoje vou mostrar uma função desenvolvida em Java, que através de dois arquivos txt, procura palavras repetidas, contidas (por exemplo, do arquivo 2 no arquivo 1) utilizando ArrayList.
Abaixo o conteúdo do Arquivo 1:
Daniel Atilio Teste 1 Teste 2 Teste Novo Terminal
Abaixo o conteúdo do Arquivo 2:
Daniel Terminal Atilio
E abaixo um print da execução com as palavras repetidas nos dois arquivos.
Código completo desenvolvido:
import java.util.List; import java.util.ArrayList; import java.io.File; import java.io.FileReader; import java.io.BufferedReader; import java.util.Formatter; public class compArq { public static List <String> oPalavrasArq1 = new ArrayList<String>(); //Funcao que carrega as palavras do Arquivo 1 para a Lista Encadeada (juntamente com a funcao addPalavra) private static void carregaPalavras() { String LinAtu = ""; File fArq = new File("arquivo1.txt"); String palavra = ""; if (fArq.exists()){ try{ FileReader fReader = new FileReader("arquivo1.txt"); BufferedReader rLeitor = new BufferedReader(fReader); while ((LinAtu=rLeitor.readLine())!=null){ if (LinAtu.contains(" ")) { while (LinAtu.contains(" ")){ palavra = LinAtu.substring(0,LinAtu.indexOf(" ")); LinAtu = LinAtu.substring(LinAtu.indexOf(" ")+1,LinAtu.length()); addPalavra(palavra); if (!(LinAtu.contains(" "))) { addPalavra(LinAtu); } } } else{ addPalavra(LinAtu); } } } catch(Exception eEx){ System.out.println("Houveram erros no carregamento dos dados: "+eEx); } } } //Funcao que compara a lista encadeada do Arquivo 1, com o Arquivo 2 private static void comparaArq2() { int fim = oPalavrasArq1.size(); int atu = 0; String LinAtu = ""; File fArq = new File("arquivo2.txt"); String palavra = ""; if (fArq.exists()){ try{ FileReader fReader = new FileReader("arquivo2.txt"); BufferedReader rLeitor = new BufferedReader(fReader); while ((LinAtu=rLeitor.readLine())!=null){ for(atu=0;atu<fim;atu++){ if (LinAtu.contains(oPalavrasArq1.get(atu))) { System.out.println("Palavra do Arquivo 1 encontrada no Arquivo 2: "+oPalavrasArq1.get(atu)); } } } } catch(Exception eEx){ System.out.println("Houveram erros no carregamento dos dados: "+eEx); } } } //funcao criada para adicionar as palavras lidas na lista encadeada referente ao Arquivo 1 private static void addPalavra(String palavra){ int fim = oPalavrasArq1.size(); int atu = 0; Boolean adicionar = true; if(fim == 0) adicionar = true; else for(atu=0;atu<fim;atu++){ if ( (oPalavrasArq1.get(atu).toUpperCase().trim().equals(palavra.toUpperCase().trim())) ){ adicionar = false; } } if (adicionar) oPalavrasArq1.add(palavra); } //funcao principal public static void main(String[] args) { carregaPalavras(); comparaArq2(); } }
Obrigado ao Marcial Luis pela sugestão de postagem.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Ai sim em, Dan!
Valeu Jonas san.
Aquele abraço.