Foros del Web » Programación para mayores de 30 ;) » Java »

numero de repeticiones de un caracter en una cadena

Estas en el tema de numero de repeticiones de un caracter en una cadena en el foro de Java en Foros del Web. Hola que tal! Espero q se encuentren bien, pues les tengo un pequeño problema, ando aprendiendo java y me atore en un tema que en ...
  #1 (permalink)  
Antiguo 07/06/2007, 11:27
Avatar de Killer Worm  
Fecha de Ingreso: junio-2006
Ubicación: Chilangolandia.
Mensajes: 30
Antigüedad: 17 años, 10 meses
Puntos: 0
Exclamación numero de repeticiones de un caracter en una cadena

Hola que tal!

Espero q se encuentren bien, pues les tengo un pequeño problema, ando aprendiendo java y me atore en un tema que en verdad no tengo idea como hacerle, lo que requiero hacer, es contar cuantas veces se repite un carácter dentro de una cadena e imprimir el numero de veces que se repite.

Como verán esta algo sencillo pero no me sale ...

Les envío saludos, espero su pronta respuesta...
__________________
Quiero aprender para poder transmitir...:arriba:
  #2 (permalink)  
Antiguo 07/06/2007, 13:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: numero de repeticiones de un caracter en una cadena

¿Y que es lo que has intentado? Por que debe ser cuestión de algun concepto básico por que fácil fácil es.

S!
  #3 (permalink)  
Antiguo 07/06/2007, 14:16
 
Fecha de Ingreso: noviembre-2003
Mensajes: 59
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: numero de repeticiones de un caracter en una cadena

Creo que esta no es la forma mas optima pero me funciono:

Código:
/*
 * BusquedaCadena.java
 * 
 * Created on 07-06-2007, 02:40:06 PM
 * 
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package practicando1;

/**
 *
 * @author Picaporte
 */
public class BusquedaCadena {

    public BusquedaCadena() {
    }
  public static void main(String args[]){
        
        String cadena="esta es una prueba loca";
        char charCadena='\n';
        int[] resul = new int[300];
        int numeroVeces=0, letraRepetida=0;
      
        //suma un punto cada vez que se repite.
        for(int i=0;i<cadena.length();i++)           
           resul[cadena.codePointAt(i)]++;
        
       //busca el que tiene mas punto
        for(int i=48;i<resul.length;i++){
            if(resul[i]>=numeroVeces){                
                numeroVeces=resul[i];
                letraRepetida=i;
             }}
       
       //busca en la cadena original. 
        for(int i=0;i<cadena.length();i++){
            if (letraRepetida==cadena.codePointAt(i)){
                charCadena=cadena.charAt(i);                
            }
           
       }
   System.out.println("\nEl caracter mas repitdo es = "+charCadena);
   System.out.println("y se repite "+numeroVeces+" veces");
            
  }    
        
      
       
 }
Tienes que considerar que para este programa no es lo mismo
Mayuscula y minuscula, de letras con acento o sin acento.


datos://
caracter = codePointAt
0..9 = 48..57
A..B = 64..90
a..z = 97..122

ñ = 241
Ñ = 209
á = 225
é = 233
í = 237
ó = 243
ú = 250

por eso hice una matriz de tamaño 300 y en el for empeze a buscar a partir
del i=48;
Yo creo que hay una forma mas facil de hacer lo mismo?, a lo mejor usando serachBinary o nose.
saludos
  #4 (permalink)  
Antiguo 07/06/2007, 19:20
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: numero de repeticiones de un caracter en una cadena

Te sirve esto:
Código HTML:
                        String pr="cadena a comparar";
			char _toCompare='c';
			int veces=0;
			char []caracteres=pr.toCharArray();
			for(int i=0;i<=caracteres.length-1;i++){
				if(_toCompare ==caracteres[i]){
					veces++;
				}
				
			}
			System.out.println("Se encontro: "+veces+" veces");
		
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:17.