Jump to content

repetição de uma letra


Guest darkangel_13

Recommended Posts

Bom dia estou aqui a "inventar" um programa em que basicamente consiste em saber o numero de palavras a partir de um texto em que uma letra se repete x vezes e mostrar esse input. Exemplo:

Input:

Eu gosto de ir almoçar fora.

input:

letra o

Output:

0 vezes : 3

1 vez: 2

2 vezes: 1

3 vezes:0

5+ vezes:0

Estou a tentar fazer só que não consigo perceber como é que eu vou fazer essa verificação..

Obrigado

Link to comment
Share on other sites

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

primeiro tens de dividir a frase em palavras

depois tens de verificar para cada letra ...

Acho mais eficiente ir separando a frase em palavras e contando as letras ao mesmo tempo, cam apenas uma passagem pelo texto 🙂

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

Obrigado pelas respostas já estive a tentar fazer um esboço a partir das respostas..

String ficheiro ="ficheiro.txt";
int vector []=new int [5];
char c='o';
String s;
String[] vect;
int contador=0;
BufferedReader br = new BufferedReader( new FileReader(ficheiro) );
while(s=br.readLine()) != null)
vect[]=s.split(" ");
for(int i =0;i<vect.length;i++){
 if(vect[i].charAt(i)==c){
 contador++;
 vector[i]==contador;
 }
}
System.out.println("0 vezes " + vector[0]+"1 vez " + vector[1]+"2 vezes " + vector[2] + "3 vezes " + vector[3] + "4 vezes " + vector[4] +"5 vezes " + vector[5]
}

Será isto ?

Edited by darkangel_13
Link to comment
Share on other sites

Pois o meu ciclo for está errado pois o output não corresponde, como é que eu faria a condição ? já estive a pensar e se eu fizesse if(vect[i].charAt(i)!=c){ iria estar sempre essa condição a ser executada teria que ser algo do genero if( i=0 && vect.charAt(i)!=c) contador ++ ?

Link to comment
Share on other sites

String ficheiro ="ficheiro.txt";
int vector []=new int [5];
char c='o';
String s;
String[] vect;
int contador=0;
BufferedReader br = new BufferedReader( new FileReader(ficheiro) );
while(s=br.readLine()) != null)
vect[]=s.split(" ");
for(int i =0;i<vect.length;i++){
for(int j=0;j<vect[i].length;j++){
   if(i=0 && vect[i].charAt(j)!=c){
 contador++;
   vector[i]==contador;
 if else(i=1 && vect[i].charAt(j)==c ){
  contador++;
	 .....
 }
}
System.out.println("0 vezes " + vector[0]+"1 vez " + vector[1]+"2 vezes " + vector[2] + "3 vezes " + vector[3] + "4 vezes " + vector[4] +"5 vezes " + vector[5]
}
}

Estou a tentar pensar mas qualquer condiçao que eu faça vai aplicar a letras como é que eu faria uma condição que contasse apenas um indice ou seja , que na posição vect apenas o carater c estivesse numa só posição ?

Link to comment
Share on other sites

ok ... já percebeste que necessitas de iterar as palavras e em cada palavra necessitas de iterar cada letra da palavra

a única coisa de que se aproveita do teu código é a separação da frase em palavras e os dois ciclos for

agora volta a ler o meu post inicial:

primeiro tens de dividir a frase em palavras

depois tens de verificar para cada letra, se essa existe em cada uma das palavras e se existir incrementa um contador qualquer

o fundamental é ler

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Obrigado pela resposta !!

String ficheiro ="ficheiro.txt";
int vector []=new int [5];
char c='o';
String s;
String[] vect;
int contletra=0;
BufferedReader br = new BufferedReader( new FileReader(ficheiro) );
while(s=br.readLine()) != null)
vect[]=s.split(" ");
for(int i =0;i<vect.length;i++){
for(int j=0;j<vect[i].length;j++){
 if(vect[i].charAt(j)==c )
  contletra++;
 vect[contletra]+=1;
 }
}
System.out.println("0 vezes " + vector[0]+"1 vez " + vector[1]+"2 vezes " + vector[2] + "3 vezes " + vector[3] + "4 vezes " + vector[4] +"5 vezes " + vector[5]
}
Link to comment
Share on other sites

já tive a testar e não dá mesmo nada, até estive a meter outra condição não consigo mesmo..

String ficheiro ="Eu gosto de almocar ao domingo";
int vector []={0,0,0,0,0,0};
char c='o';
String s;
int contletra=0;
//BufferedReader br = new BufferedReader( new FileReader(ficheiro) );
//while(s=br.readLine()) != null){
String vect[]=ficheiro.split(" ");
for(int i =0;i<vect.length;i++){
 for(int j=0;j<vect[i].length();j++){
 if(vect[i].charAt(j)==c ){
  contletra++;
   if(contletra>=5)
 vect[5]+=1;
   else
  vect[contletra]+=1;
  }
 }
}
//}
System.out.println("0 vezes :" + vector[0]+"\n1 vez :" + vector[1]+"\n2 vezes :" + vector[2] + "\n3 vezes :" + vector[3] + "\n4 vezes :" + vector[4] +"\n5 vezes :" + vector[5]);
Link to comment
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.