oie… fiz um programinha que percorre a string e incrementa um contador se houver letras rpetidas
porem ele sempre conta uma a mais quando tem mais de duas letras iguais!.. ja mexi no for um monte de vezes e nao dá certo… alguem pode me ajudar
import java.util.*;
public class cinco {
static int repetido (String s)
{
int i = 0,j,cont = 0;
char c,d;
for (j = 0; j < s.length(); j++)
{
for(i = j + 1 ; i < s.length();i++)
{
c = s.charAt(i);
//String.valueOf(c);
d = s.charAt(j);
//t = String.valueOf(d);
if (c == d)
cont++;
}
}
return cont;
}
public static void main (String args[]){
Scanner leitor = new Scanner(System.in);
String palavra = "";
int vezes;
System.out.printf("Digite uma palavra para a busca:");
palavra = leitor.nextLine();
vezes = repetido(palavra);
System.out.print(vezes);
}
}
O que é uma “letra repetida”?
- Duas letras consecutivas repetindo-se, por exemplo repetido (“recorrência”) deve retornar o valor “1”, que é correspondente a “rr”
- Uma letra que se repete na palavra, mas em posições não consecutivas (por exemplo, “repórter” apresenta 3 ocorrências da letra “r” e 2 ocorrências da letra “e”.
Queria saber o que você quer fazer.
Meu amigo pelo que entendi vc esta comparando um char com outro e se encontrar conta, porém, qdo vc passa por esse caracter que encontrou volta a contar novamente. ou seja, a palavra “para” só tem uma letra repetida o “a” então vc compara o primeiro “a” com o segundo e ai vai percorrendo os caracteres e qdo chega no segundo vc compara ele com o primeiro e conta novamente. Pelo menos foi o q entendi se não for isso me desculpa. Da uma olhada nesse exemplo que fiz a partir do seu.
[code]
import java.util.*;
public class Cinco {
static int repetido (String s)
{
int i = 0, j = 0, cont = 0;
char c,d;
char[] letra;
boolean encontrou = false;
letra = new char[s.length()];
for (j = 0; j < s.length(); j++)
{
for(i = j + 1 ; i < s.length();i++)
{
c = s.charAt(i);
d = s.charAt(j);
for (int l=0; l < s.length(); l++) {
if (d==letra[l]) {
encontrou=true;
break;
}
}
if ((c == d) && !encontrou) {
cont++;
letra[j] = d;
}
encontrou=false;
}
}
return cont;
}
public static void main (String args[]){
Scanner leitor = new Scanner(System.in);
String palavra = "";
int vezes;
System.out.printf("Digite uma palavra para a busca:");
palavra = leitor.nextLine();
vezes = repetido(palavra);
System.out.println(vezes);
}
}[/code]