• Sábado 20 de Abril de 2024, 02:40

Autor Tema:  Cadena Caracteres  (Leído 3654 veces)

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Cadena Caracteres
« en: Sábado 25 de Noviembre de 2006, 01:29 »
0
Hola amigos…!!!

Necesito urgentemente una ayuda de alguien que sea guru en Java necesito un programa en java en función a cadena de caracteres, aquí les planteó mi problema.

Dado una cadena de caracteres desarrollar un programa que indique la cantidad de veces que se repite un carácter dado. Utilizar un menú donde el usuario pueda seleccionar la opción adecuada.

1.   Leer Cadena
2.   Indicar las veces que se  repite un carácter dado en la cadena
3.   Salir.

Ejemplo de cómo debe ser:
1) Suministre la Cadena = Buenas Noches
2) Suministre el Carácter a buscar = B
El carácter se repite = 1
Desea Buscar otro carácter: s/n =

Así es la estructura del programa y que debe hacer.

Les agradezco antemano su ayuda… me Salvan la vida se mi ayudan… Gracias….
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #1 en: Sábado 25 de Noviembre de 2006, 06:28 »
0
Hola, pues el problema no se mira tan complicado. lo que debes haces es que a la hora que se le pida al usuario que ingrese el caracter a buscar, lo almacenas en una variable tipo String, asi como la cadena, luego con la función CharAt, y un contador recorres la cadena de caracteres, y vas comparando caracter por caracter y cada vez que coincidan aumentas un contador.

algo así quedaria el programa:

Código: Text
  1.  
  2. //supongamos que la información la ingresas en TextArea
  3. String CADENA= area_texto.getText()  // obteniendo la cadena
  4. String caracter = area_texto2.getText() // obteniendo el caracter
  5.  
  6. for(int i=0; i&#60;CADENA.length(); i++)
  7. {
  8.               // no se si funciona pero esta es la idea
  9.                if(CADENA.charAt(i)==caracter.charAt(0))
  10.                     contador++;
  11.  
  12. }
  13. System.out.println(&#34;caracter:&#34;+caracter+&#34;,repedido:&#34;+contador+&#34; veces&#34;);
  14.  

Hay muchas formas de comprara cadenas, por ejemplo con "equals", si deseas ignorar mayusculas y minusculas, puedes usar, "equalsIgnoreCase",
Código: Text
  1. if(cadena1.equals(cadena2))
  2.  
esto devuelve un valor booleano

tambien existe el "compareTo"  y "compareToIgnoreCase",

tambien para pedir información al usuario mientras corre la aplicación, puedes usar componentes de Swing, como los JDialog, o los JOptionPane.
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #2 en: Sábado 25 de Noviembre de 2006, 18:19 »
0
Gracias robertogt dices que es facil por que eres un guru en java te lo agradesco mucho yo soy novi en esto y estoy intentando aprender... Si no fuera mucho me podras ayudar con un ejemplo switch.

que en consola lea de esta manera:

1. Leer Cadena
2. Introdusca las veces que se repite un caracter dado en la cadena
3. Salir

ingrese opcion:_

Te lo Agradesco si puedes me lo mandas a mi mail.
lorena_sexy_baby@hotmail.com

Gracias.... Besos... :hola:  ;)
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #3 en: Sábado 25 de Noviembre de 2006, 19:27 »
0
para leer de consola un caracter se utiliza

Código: Text
  1.  
  2. try{
  3.         System.in.read();
  4.     }catch (IOException ex) {  }
  5.  

para leer varios caracteres, y meterlos a una cadena hasta que presiones ENTER puedes hacerlo así:


Código: Text
  1.     String cadena;
  2.     char c;
  3.     try{
  4.         while ((c=(char)System.in.read())!='&#092;n'){
  5.             cadena.append(c);
  6.         }
  7.     }catch(IOException ex){}
  8.  

Citar
... Si no fuera mucho me podras ayudar con un ejemplo switch
como así un "ejemplo switch"
Un dia sin sol es como, ya sabes, ... noche

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #4 en: Sábado 25 de Noviembre de 2006, 19:37 »
0
por cierto, en lugar de usar la variable String puedes usar la variable StringBuffer, y usas la función toString, para convertirla a un String.

lo siento, pero aqui no se hacen tareas  :P , te podemos orientar si, pero así como que hacerte el programa, ahi si te quedaria mal. solo aclarame lo del ejemplo switch, y talvez ahi si te podamos ayudar. saludos  :)
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #5 en: Sábado 25 de Noviembre de 2006, 20:31 »
0
Gracias robertogt, disculpa toda la molestia que te cause solo tenia dudas soy nueva en java no se nada de nada baje varias guias por la red entre ellas encontre este ejercicio que como siempre soy terca en hacerlo se me metio en la cabeza y no he podido hacerlo, con esta ayuda que me diste me sirve mucho te lo agradesco ya tengo una idea de como hacerlo.

lo del swicht es un menu... se hacer menu en c, c++ y pascal pero como te lo he dicho soy terca y quiero aprender Java hacerlo he encontrado vario pero cuando lo trato de copilar no me corren no se cual es mi problema por eso te pedia un ejemplo simple de un menu para comprender su estructura.

Disculpa...... Gracias.
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #6 en: Sábado 25 de Noviembre de 2006, 22:14 »
0
ok, bueno, una forma facil de hacer menus en java, es utilizando JFrame's. una pregunta , que vesion de Java estás utilizando?? :)
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #7 en: Sábado 25 de Noviembre de 2006, 23:42 »
0
Lo estoy utilizando por la consola del dos la verion j2sdk - 1.4.2. lo instale con el NetBeans 5.0 que lo trae.

El menu es sencillo solo

1. Leer Cadena
2. Introdusca las veces que se repite un caracter dado en la cadena
3. Salir

La guia y lo problemas los encontre en la web del programador ya he realizado los 2 primeros ejercicios pero este tenia duda..
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #8 en: Sábado 25 de Noviembre de 2006, 23:52 »
0
Si sabes de una guia  o web de java que tenga buenos ejemplo y que explique con detalle lo pasos me avisas.
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #9 en: Sábado 25 de Noviembre de 2006, 23:55 »
0
:o  :o Bueno ahí si no se  :P , nunca he hecho un menú para java solo a pura consola :alien: , solo en modo grafico, alguien sabe como hacer uno?? la verdad ahora si ya me entro duda.
Un dia sin sol es como, ya sabes, ... noche

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #10 en: Domingo 26 de Noviembre de 2006, 01:52 »
0
un buen tutorial de java es el de java desde cero
es bien extenso y si explica bien las cosas

http://ctc.aspira.org/PDF%20files/Java%20desde%20Cero.pdf

tambien esta este otro

http://www.cica.es/formacion/JavaTut/index.html
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #11 en: Domingo 26 de Noviembre de 2006, 03:32 »
0
Este es un ejercicio que estoy tratando de hacer creo que todo esta bien pero cuando lo copilo me da erro.

----ESTA ES EL CODIGO FUENTE-------
import java.io.BufferedReader;
import java.io.*;
import java.lang.String;

public class SumDivMult{

   public static void main(String args[])
   {
      BufferedReader entrada =new BufferedReader(new InputStreamReader(System.in));
      PrintWriter salida =new PrintWriter(System.out,true);
      String n1,n2,sum,div,multi;
      int op;

      System.out.print("Elige una opcion" );
      System.out.print("1.- realizar una suma" );
      System.out.print("2.- realizar una divicion" );
      System.out.print("3.- realizar una multiplicacion" );
      try{
          
      switch(op) {
            case(1):
               System.out.print("introduce el primer numero " );
               n1=entrada.readLine();
               System.out.print("introduce el segundo numero " );
               n2=entrada.readLine();
               sum=(n1 + n2);
               System.out.println("la suma es: "+ sum);
               break;
            case(2):
               System.out.print("introduce el primer numero" );
               n1=entrada.readLine();
               System.out.print("introduce el segundo numero " );
               n2=entrada.readLine();
               div=(n1 / n2);
               System.out.println("la divicion es: "+ div);
               break;
            case(3):
               System.out.print("introduce el primer numero" );
               n1=entrada.readLine();
               System.out.print("introduce el segundo numero " );
               n2=entrada.readLine();
               multi=(n1 * n2);
               System.out.print("la suma es: "+ multi);
               break;
            default:
            System.out.print("eleccion incorrecta" );

            } catch (Exception error)
      //{
      ///System.out.println("genero error: "+error);
      //}
      }
   }
}
----FIN DEL CODIGO FUENTE--------------
Dime donde me equivoque.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #12 en: Domingo 26 de Noviembre de 2006, 03:41 »
0
pues el error que marca es que falta un "try", pero lo que pasa es que no estan bien puestas las llaves, prueba entonces con este codigo, y a ver si da otro error.

Código: Text
  1.  
  2. import java.io.BufferedReader;
  3. import java.io.*;
  4. import java.lang.String;
  5.  
  6. public class SumDivMult{
  7.  
  8. public static void main(String args[])
  9. {
  10. BufferedReader entrada =new BufferedReader(new InputStreamReader(System.in));
  11. PrintWriter salida =new PrintWriter(System.out,true);
  12. String n1,n2,sum,div,multi;
  13. int op;
  14.  
  15. System.out.print(&#34;Elige una opcion&#34; );
  16. System.out.print(&#34;1.- realizar una suma&#34; );
  17. System.out.print(&#34;2.- realizar una divicion&#34; );
  18. System.out.print(&#34;3.- realizar una multiplicacion&#34; );
  19. try{
  20.  
  21. switch(op) {
  22. case(1):
  23. System.out.print(&#34;introduce el primer numero &#34; );
  24. n1=entrada.readLine();
  25. System.out.print(&#34;introduce el segundo numero &#34; );
  26. n2=entrada.readLine();
  27. sum=(n1 + n2);
  28. System.out.println(&#34;la suma es: &#34;+ sum);
  29. break;
  30. case(2):
  31. System.out.print(&#34;introduce el primer numero&#34; );
  32. n1=entrada.readLine();
  33. System.out.print(&#34;introduce el segundo numero &#34; );
  34. n2=entrada.readLine();
  35. div=(n1 / n2);
  36. System.out.println(&#34;la divicion es: &#34;+ div);
  37. break;
  38. case(3):
  39. System.out.print(&#34;introduce el primer numero&#34; );
  40. n1=entrada.readLine();
  41. System.out.print(&#34;introduce el segundo numero &#34; );
  42. n2=entrada.readLine();
  43. multi=(n1 * n2);
  44. System.out.print(&#34;la suma es: &#34;+ multi);
  45. break;
  46. default:
  47. System.out.print(&#34;eleccion incorrecta&#34; );
  48.  
  49.   } //-------switch
  50. } //----------try
  51. catch (Exception error)
  52.     {
  53.     ystem.out.println(&#34;genero error: &#34;+error);
  54.    
  55.     } ///-----------catch
  56.  }   //------------------public static void main(String args[])
  57. } //------------SumDivMult
  58.  
  59.  
  60.  
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #13 en: Domingo 26 de Noviembre de 2006, 04:02 »
0
Me da error con la Divicion dev=(n1 / n2);
y con la multiplicacion mult=(n1 * n2);

Me dice operador / cannot be applied to java.lang.String.java.lang.string

Este es el error en consola.-
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Cadena Caracteres
« Respuesta #14 en: Domingo 26 de Noviembre de 2006, 04:40 »
0
si..., no me habia dado cuenta de eso, lo que pasa es que las variables
n1 y n2 son variables tipo String, y por supuesto no puedes operar dos cadenas, lo que tienes que hacer es convertirlas a tipo "int" y vas a tener que cambiar de tipo a las variables "sum", "div" y "multi" a tipo "int", bueno a "div" a tipo "float"

para convertir cadenas a String tienes que hacerlo de la siguiente manera

       
Código: Text
  1. String a;
  2.         int num=0;
  3.         a=&#34;10&#34;;
  4.         try{
  5.         num=Integer.valueOf(a).intValue();        
  6.         }catch(NumberFormatException ex){System.out.println(ex);}
  7.        
  8.         System.out.println(&#34;la cadena:&#34;+a);
  9.         System.out.println(&#34;el numero:&#34;+num);
  10.  

date cuenta que al convertir una variable String a Integer se puede dar la posibilidad que haya una excepcion, es decir un error, ya que si tratas de convertir a Integer una palabra y no un numero ahi daría un error.
Un dia sin sol es como, ya sabes, ... noche

<<LoR3n@>>

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Cadena Caracteres
« Respuesta #15 en: Domingo 26 de Noviembre de 2006, 05:09 »
0
Roberto eres mi salvador, mi  :angel: Gracias cariño te debo esta... y otra.
te escribo si tengo algun problema.
---La Vida es una Sola Disfrutala Aplenitud se tu mismo y da siempre da lo mejor de ti--