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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | 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.