Jump to content
JoaoSkate

Contar ocorrencias de uma substring numa string

Recommended Posts

JoaoSkate

Olá boa noite, para completar uma parte de um projeto escolar preciso de uma função auxiliar que me permita contar o nr de ocorrencias que uma substring aparece numa string principal 

para isso fiz:

public int ocorrencias1(String palavra) {
		
		
		
		String findStr = palavra;
		
		
		
		int lastIndex = 0;
		int count = 0;

		while(lastIndex != -1){

		    lastIndex = retornaTexto().indexOf(findStr,lastIndex);

		    if(lastIndex != -1){
		    	
		        count ++;
		        lastIndex += ((findStr).length());
		    }
		}
		System.out.println(count);
		
		return count;
	}

no entanto nao estou a obter o resultado que queria, pois queria apanhar as substrings que completam uma palavra ou uma frase

por exemplo, se eu quisesse procurar a palavra "por" na string "por duas portugal foi à final", o meu objetivo era que o retorno fosse 1, no entanto o retorno é 2 pq este programa lê tb na palavra "portugal"

 

Agradecia uma ajuda, obrigado!

Share this post


Link to post
Share on other sites
HappyHippyHippo
18 hours ago, JoaoSkate said:

o meu objetivo era que o retorno fosse 1, no entanto o retorno é 2 pq este programa lê tb na palavra "portugal"

olha que procurar uma substring numa string não é a mesma coisa que procurar uma palavra numa frase...

no mesmo contexto, quantas vezes vez a substring "pop" na string "popop" ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JPTeixeira

Uma abordagem possível é identificares o index de uma ocorrência dessa palavra na frase e verificar se o charAt(indexOcorrencia + palavraAEncontrar.length()) é igual a ' ' (no caso de ser uma palavra ou a '.' no caso de ser uma frase. Quando chegar a casa tento fazer isso, espero que entretanto isto te ajude.

Edited by JPTeixeira

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.