Verificando palavras contidas em um arquivo txt através de outro utilizando Java

Verificando palavras contidas em um arquivo txt através de outro utilizando Java

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.

Linguagem Java
Linguagem Java

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.

Palavras repetidas nos arquivos - Java
Palavras repetidas nos arquivos – Java

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();
	} 
}

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/Java.

Obrigado ao Marcial Luis pela sugestão de postagem.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

2 thoughts on “Verificando palavras contidas em um arquivo txt através de outro utilizando Java

Deixe uma resposta

%d blogueiros gostam disto: