Read repeated characters

2

I need to make a code where I read a text or characters that I enter tell me which is the most repeated I already have my code, it reads me the characters but when it comes to saying which is the most repeated, it bursts

public static void main(String[] args) {

   Scanner lector=new Scanner(System.in);
   String cadena= "";
   char [] Arraycadena;
   char caracter;
   int contador =0;
   System.out.println("escriba una frase");
   cadena=lector.nextLine();
   Arraycadena = cadena.toCharArray();
   for(int i=0; i<Arraycadena.length; i++){

       caracter = Arraycadena[i];
         for (int j =0; j<Arraycadena.length; j++){
               if (Arraycadena [j]== caracter){

                  contador++;
               }
         }
   }

   //aca me imprime cada letra con las respctivas veces que se ha contado
    System.out.println(+contador);
     contador=0;


}
public static void main(String[] args) {

   Scanner lector=new Scanner(System.in);
   String cadena= "";
   char [] Arraycadena;
   char caracter;
   int contador =0;
   System.out.println("escriba una frase");
   cadena=lector.nextLine();
   Arraycadena = cadena.toCharArray();
   for(int i=0; i<Arraycadena.length; i++){

       caracter = Arraycadena[i];
         for (int j =0; j<Arraycadena.length; j++){
               if (Arraycadena [j]== caracter){

                  contador++;
               }
         }
        }

// aca me imprime cada letra con las respctivas veces que se ha contado
    System.out.println(+contador);
     contador=0;


    }

}
    
asked by ruben 06.06.2017 в 19:05
source

2 answers

2

You are incorrectly calling the counter variable when displaying it. You have to call it System.out.println(contador); no System.out.println(+contador); .

In addition, you should keep the letter that has more repetitions and go verifying if another letter appears with more repetitions.

The code would be something like this:

public static void main(String[] args) {

    Scanner lector = new Scanner(System.in);
    String texto = "";
    char [] letras;

    int mayorRepeticion = 0;
    char letraMasRepetida;

    System.out.println("Escribe una frase: ");

    texto = lector.nextLine();
    letras = texto.toCharArray();

    for(int i=0; i<letras.length; i++){

        char letraActual = letras[i];
        int contador = 0;

        for (int j =0; j<letras.length; j++){
            if (letras[j] == letraActual)
                contador++;
        }

        if(mayorRepeticion < contador)
        {
            mayorRepeticion = contador
            letraMasRepetida = letraActual;
        }
    }

    System.out.println(letraMasRepetida+": Se repite "+mayorRepeticion);
}
    
answered by 06.06.2017 в 19:54
0
 Scanner lector = new Scanner(System.in);
 System.out.println("escriba una frase");
 String cadena = lector.nextLine();
 int contador = 0;
 char caracter = 0;

 while (cadena.length() != 0) { // mientras la cadena tenga algún carácter la recorremos
     int contadorAux = 0;
     for (int j = 0; j < cadena.length(); j++) { // recorremos la cadena para contar los caracteres del indice cero
         if (cadena.charAt(0) == cadena.charAt(j)) {
             contadorAux++;
         }
     }

     if (contadorAux > contador) { // si el contador del nuevo caracter es mayor al que ya estaba guardado, lo cambiamos
         contador = contadorAux;
         caracter = cadena.charAt(0);
     }

     // borramos los carácteres contados para ahorrar entrar mas veces para contarlos otra vez
     cadena = cadena.replaceAll(cadena.charAt(0) + "", "");
 }
 System.out.println(caracter + ": " + contador);
    
answered by 07.06.2017 в 11:08