Foro de elhacker.net

Programación => Java => Mensaje iniciado por: DomInYK en 17 Junio 2011, 07:12 am



Título: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: DomInYK en 17 Junio 2011, 07:12 am
YO SE QUE AQUI ME VAN AYUDAR JEJE YA TRATEEE MUCHO  PARA HACER ESTE PROGRAMA Y NO ME SALEEE  QUIEN ME AYUDA PORFAAA  SI NOES MUCHA MOLESTIAAA.....


PROGRAMA QUE CUENTE LAS PALABRAS COMPLETAS DENTRO DE UNA FRASE Y LOS MUESTRE EN MAYUSCULAS.
 EJEMPLO

EL JUEVES ES EL EXAMEN.
EL=2
JUEVES=1
EXAMEN=2
ES=1 ;D


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: klaine en 17 Junio 2011, 07:51 am
Cuando tienes la instancia de la clase String puedes usar el metodo toUpperCase() que retorna el String en mayusculas, para contar las palabras por espacios puedes usar el metodo split de la clase String asi:

String[] palabras=cadena_original.split(" ");

int cantidad_palabras = palabras.length;

Saludos


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: Valkyr en 18 Junio 2011, 00:14 am
Lees la frase completa. Le aplicas toUpperCase(), la separas por espacios y entonces recorres el array que te devuelve la función split(). Te creas un mapa, tendrás clave Strings y valores enteros, osea, int. Entonces cuando empiezas a recorrer el array que habías dividido al principio por espacios, si la palabra que tienes en la posición i no está contenido en el mapa entonces añades al mapa esa entrada, si por el contrario está incrementas en una unidad el valor.

Cuando has recorrido todo el array entonces recorres el mapa y muestras por cada clave su valor.

Sería una posible solución pero como poder puedes hacerlo de mil formas.

Saludos.


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: DomInYK en 18 Junio 2011, 19:34 pm
hey amigo  valkyrr  aque te refieres  en crear un mapa... no entendiii... jejeje


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: Valkyr en 18 Junio 2011, 21:01 pm
http://download.oracle.com/javase/6/docs/api/java/util/HashMap.html

A eso me refiero xD


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: Debci en 20 Junio 2011, 07:50 am
hey amigo  valkyrr  aque te refieres  en crear un mapa... no entendiii... jejeje

Se refiere a ir instanciando todos los valores, en tu caso, palabras en un vector, array, hasmap, dictionary....
Para luego poder entregarlo, contarlo o tratar el resultado.

Saludos


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: bengy en 11 Julio 2011, 04:02 am
a modo de colaborar lo realize este programa talves no de la forma adecuada pero funciona aunque falta

me dan sus sugerencias de como mejorar este codigo!!!!!!! porfa saludos
ahora ya funciona...

Código:
public String contarPalabras2(String palabras ){
    StringTokenizer toke      = new StringTokenizer(palabras);
    String muestra  = "";
    String dato  = "";
    String res  = "";
    int cont=0;
    ArrayList<String> array     = new ArrayList<String>();
    ArrayList<String> copia     = new ArrayList<String>();
    while(toke.hasMoreTokens()){
    array.add(toke.nextToken(" "));
    }
for(int z=0; z<=array.size()-1 ; z++){
copia.add(array.get(z));
}

   for(int a=0; a<=array.size()-1 ; a++){
       
        muestra=array.get(a);
   for(int b=a+1       ; b<=array.size()-1  ; b++){   
    if(muestra.equals(array.get(b))){
      array.remove(b);
    }
    }
}
//doble recorrido por un error ejemplo hola hola como estas hola hola
for(int a=0; a<=array.size()-1 ; a++){
       
        muestra=array.get(a);
   for(int b=a+1       ; b<=array.size()-1   ; b++){   
    if(muestra.equals(array.get(b))){
      array.remove(b);
    }
    }
}

for(int p=0; p<=array.size()-1 ; p++){
       
        dato=array.get(p);
   for(int q=0       ; q<=copia.size()-1   ; q++){   
    if(dato.equals(copia.get(q))){
      cont++;
    }
    }
    res=res+dato+" "+cont+" ";
    cont=0;
}

        return res;
    }
   
    public String  concatenar(String palabras){
    palabras=contarPalabras2(palabras);
    StringTokenizer adaptador= new StringTokenizer(palabras);
    ArrayList<String> arreglo= new ArrayList<String>();
    ArrayList<String> copia= new ArrayList<String>();
    String respuesta=" ";
   
        while(adaptador.hasMoreTokens()){
        arreglo.add(adaptador.nextToken(" "));
        }
        for(int a=0; a<=arreglo.size()-1; a++){
       
        copia.add(arreglo.get(a));
        if(a%2==0){
        copia.add("=");
    }
    else{
    copia.add(" ");
    }   
    }
    for(int b=0;b<=copia.size()-1; b++){
    respuesta=respuesta+ copia.get(b);
    }
       
   System.out.println(respuesta);
    return respuesta;
    }
}


Título: Re: COMO ELABORAR ESTE PROGRAMA EN JAVA NO PUEDOO¡¡
Publicado por: Valkyr en 11 Julio 2011, 14:27 pm
Yo suponiendo que cada palabra esté separada por un espacio haría lo siguiente:

Código
  1. public static void main(String[] args) throws IOException {
  2.  
  3. String[] palabras = br.readLine().split(" ");
  4. HashMap<String, Integer> resultados = new HashMap<String, Integer>();
  5. for(int i = 0; i < palabras.length; i++){
  6.        if(resultados.containsKey(palabras[i])){
  7.                int aux = resultados.get(palabras[i]);
  8.                aux++;
  9.                resultados.put(palabras[i], aux);
  10.        }
  11.        else{
  12.                resultados.put(palabras[i], 1);
  13.        }
  14. }
  15.  
  16. Set<String> keys = resultados.keySet();
  17. for (String string : keys) {
  18. System.out.println(string.toUpperCase() + ": " + resultados.get(string));
  19. }
  20. }
  21.  

haría uso de un mapa que viene para el caso bastante bien.

Saludos.