Dada uma string e uma letra, conte quantas vezes esta letra ocorre na string

23 respostas
Laisa

alguém sabe como se faz isso?

dada uma string e uma letra, conte quantas vezes esta letra ocorre na string

obrigada!

23 Respostas

king_of_gods
public class teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String aux = "andreia";
		int j = 0;
		for(int i=0;i<aux.length();i++)
			if(aux.charAt(i)=='a')
				j++;
		System.out.print(j);
	}

}
Bravox

ou

public class main{
	
	public static void main(String[] args) {
		
		String s = "aaaaaaaaaa";
		
		char[] c = s.toCharArray();
		
		int quantidade = 0;
		
		char letra = 'a';
		
		for (char d : c) {
			
			if (d == letra) {
				
				quantidade++;
			}
		}
		
		System.out.println( "A letra " + letra + "aparece " + quantidade
	}	
	
}
nbluis

Sem querer ser chato… mas “contidade” dói…
:lol:

Bravox

só lembrando que existe a opção de não reinventar a roda

public class main{
	
	public static void main(String[] args) {
		
		String s = "aaaaaaaaaa";
				
		String letra = "a";
		
		int quantidade = StringUtils.countMatches(s, letra);
		
		System.out.println( quantidade );
	
	}	
	
}

jakarta commons

Bravox

foi mal já corrigi !! essas coisas acontece !! :smiley:

peerless

Pode usar ER tbm:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class ahaha {
	public static void main(String args[]) {
		String data = "laisaseraqueéfake";
		char caractere = 'a';
		int conta = 0;
		Pattern p = Pattern.compile("["+caractere+"]");
		Matcher m = p.matcher(data);
		while (m.find()) {
			conta++;
		}
		System.out.println("Número de ocorrencias:"+conta);
	}
}
andredeividi

isso deve resolver e custa bem menos linha.

String [] tamanho = "josedasilva".split("a"); System.out.println(tamanho.length);

Bravox

opá !! tem bug ai !!

roda assim

String [] tamanho = "josedaaasilvaaa".split("a"); System.out.println(tamanho.length);

davidbuzatto

O que adianta dar o peixe sem ensinar a pescar pessoal?

P

Se fosse um cueca td mundo ia descer o pau no cara !
:shock:

R
public class ContaOcorrencias {
	private char letraProcurada;
	String textoPercorrido;
	
	ContaOcorrencias(char letraProcurada, String textoPercorrido){
		this.letraProcurada = letraProcurada;
		this.textoPercorrido = textoPercorrido;
	}
	
	public int contaOcorrencias(){
		int retorno = 0;
		if(!textoPercorrido.equals("")) {
			this.textoPercorrido = this.textoPercorrido.substring(this.textoPercorrido.indexOf(this.letraProcurada) + 1);
			retorno = contaOcorrencias() + 1;
		}
		return retorno;
	}
	
	public static void main(String[] args) {
		char letraProcurada = 'a';
		String textoPercorrido = "aabaabaabaaaaa";
		System.out.println(new ContaOcorrencias(letraProcurada, textoPercorrido).contaOcorrencias());
	}
}

Com recursão, sempre é mais simples. A lógica está no método contaOcorrencias(), que contém praticamente duas linhas de código efetivo, que está dentro do condicional.

O código ficaria ainda mais enxuto se usásemos apenas membros static e passássemos o char e a String ao método contaOcorrencias().

[]'s

davidbuzatto

pm:
Se fosse um cueca td mundo ia descer o pau no cara !
:shock:

Concordo :smiley:

RafaelVS :
Com recursão, sempre é mais simples.

Hein? Mais simples? O código sim, mas visto a pergunta de uma iniciante como a Laisa que ainda está engatinhando creio que não seja tão simples assim :smiley:

Como falei, ensinem a pescar ao invés de dar o peixe… O mínimo que poderiam ter feito era comentar o código…

Até mais!

Laisa

muito obrigada!
vcs são muito queridos =)

Laisa

String [] tamanho = "josedaaasilvaaa".split("a"); System.out.println(tamanho.length);

ta com pau isso, tipow tem 6 “a” e o resultado da 4.

R

davidbuzatto:
pm:
Se fosse um cueca td mundo ia descer o pau no cara !
:shock:

Concordo :smiley:

RafaelVS :
Com recursão, sempre é mais simples.

Hein? Mais simples? O código sim, mas visto a pergunta de uma iniciante como a Laisa que ainda está engatinhando creio que não seja tão simples assim :smiley:

Como falei, ensinem a pescar ao invés de dar o peixe… O mínimo que poderiam ter feito era comentar o código…

Até mais!

heheheheheh eu pensei nisso tb… é simples pra quem já tem um certo conhecimento. Recursão não é algo que se aprende nos “primeiros períodos” da faculdade hehehehe

Bravox

como eu disse tem bug nessa lógica !!

Laisa

ta tipow oq o split faz?

maquiavelbona

Adeus araucárias, foi bom tê-las por perto.

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)

Nem olhar o javadoc, faz. :frowning:

Até!

Laisa

dadas duas strings (uma contendo uma frase e outra contendo uma palavra), determine o número de vezes que a palavra ocorre na frase. Por exemplo: Para a palavra "ANA"e a frase "ANA E MARIANA GOSTAM DE BANANA", temos que a palavra ocorre 4 vezes na frase.

é quase a mesma coisa mas não sei como comparar meu codigo tá assim:
Scanner tec = new Scanner(System.in);
		
		System.out.println("Digite a frase");
		frase = tec.next();
		
		System.out.println("Digite a palavra ");
		palavra = tec.next();
		
		
		  for (int i = 0; i < frase.length(); i ++) {
              if (frase.charAt(i).equals(palavra) ){
            	  cont ++ ;

              }

alguem me ajuda!!
please!!!!!

peerless

Se for possível usar expressão regular neste exercício, da uma estudada neste código:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class ahaha {
	public static void main(String args[]) {
		String data = "ana e mariana gostam de banana";
		String palavra = "ana";
		int conta = 0;
		Pattern p = Pattern.compile("("+palavra+")");
		Matcher m = p.matcher(data);
		while (m.find()) {
			conta++;
		}
		System.out.println("Número de ocorrencias:"+conta);
	}
}

ER? [url]http://guia-er.sourceforge.net/[/url]

Se não, você deve lembrar das aulas do professor de estrutura de dados... , trabalhar com loops... pense em um mecanismo:

uma variavel booleana
um contador
uma string auxiliar

enquanto correr a string principal, verifique caracter por caracter, se bate com a primeira letra da palavra a ser procurada, se bater, inicie uma quebra de nível, verificando se as proximas também são iguais.. se for até o fim, vc incrementa seu contador, e sai do loop (baseando-se na variavel booleana), e continua o laço principal atras de outras....

Temos que tratar bem as gurias do forum, pois é muito raro.. hehehe.. problema quando é fake se folgando..

peron

Olá,

Vou te ensinar a pescar e não te dar o peixe, OK?

Bom, quando procuramos caracteres, usamos charAt, porque precisamos percorrer um a um.

No caso de palavras já é diferente porque você tem que pesquisar por sentenças, por isso, você irá precisar:

Método substring da classe String
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int,%20int)

Método length da classe String
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#length()

Tente fazer um código aí, posta que ajudamos você.

sds

Laisa

rsrsrsrs
fica sussi que não sou fake se folgando! =p
sou mulher e muuuuuitoooooooooooooooooooo!!!
rsrsrsr
muito obrigada pela ajuda!
queridooooooooooossss =)

juceliohv

Usa RegEx que funciona.

String [] tamanho = "josedaaasilvaaa".split("[a]",-1); System.out.println(tamanho.length -1);

Criado 24 de julho de 2007
Ultima resposta 6 de jul. de 2011
Respostas 23
Participantes 12