ola pessoal gostaria de saber se alguem pode me ajudar nesse codigo aqui, queria saber como posso verificar quantas palavras iguais ao que eu
passar por parametro, existem no texto
no caso aqui eu ja suponho que tenho um construtoar criado e que recebe esse texto ou frase por ele,
ai por exemplo quero saber quantas palavras dia tem nessa frase “Tem dia que parece dia de feira.”
o metodo deve retornar 2.
alguem pode ajudar?
detaçhe aqui ele naum esta conseguindo fazer a comparação, ele vai direto para paçavra inexistente
Cara…
Pesquise um pouco sobre o metodo split()
Fiz essa código agora rápido, espero que ajude.
publicstaticintcontaPalavras(Stringpalavra){intquant=0;Stringtexto="Tem dia que parece dia de feira.";String[]arrayString=texto.split(" ");for(inti=0;i<arrayString.length;i++){if(arrayString[i].equals(palavra)){quant++;}}returnquant;}publicstaticvoidmain(String[]args){System.out.println(contaPalavras("dia"));}
Depois ele vai e percorre esse vetor, verificando o que tá escrito em cada um, e comparando a palavra a ser procurada (no caso dia)
kemperacc1 like
publicstaticintcontaPalavras(Stringtexto,Stringpalavra,booleancaseSensitive){//usando stringbuffer por ser sincronizado...StringBufferbuffer=newStringBuffer();StringBuffertextoBuffer=newStringBuffer();char[]chs=palavra.toCharArray();for(charc:chs){buffer.append("[");if(caseSensitive){buffer.append(Character.toString(c));}else{if(Character.isLetter(c)){buffer.append(Character.toString(c).toLowerCase());buffer.append(Character.toString(c).toUpperCase());}else{buffer.append(Character.toString(c));}}buffer.append("]");}textoBuffer.append(texto);//se o ultimo item do texto nao eh a palavra que estamos contando, subtrair 1 para//nao dar erradointlen=textoBuffer.toString().split(buffer.toString()).length;if(!texto.substring(texto.length()-palavra.length(),texto.length()).equals(palavra)){len--;}returnlen;}
Presentinho pra vc…
Note que esta funcao ira contar a quantidade de ocorrencias de PALAVRA em TEXTO, por exemplo:
EU NAO SEI SE A VACA VOA, MAS SE ELA VOAR EU VOU CORRER
Se vocer bucar por “VOA” vai encontrar 2 ocorrencias, estou usando expressoes regulares para dar o split e depois simplesmente pegando o tamanho do vetor gerado. como no exemplo assima, se procurar por VOA com caseSensitive = true, ele vai gerar uma regexp assim: [V][O][A], se for false, vai ficar assim: [Vv][Oo][Aa].
De uma lida sobre expressoes regulares que podera mudar a funcao para incluir os separadores usuais (.,!? ) etc.
[]s
Kemper
R
rodsoliver
ok pessoal valew consegui resolver aqui, vou pesquisar sim sobre o split, vou postar o que fiz para poder ajudar quem tb precisar: