Convirtiendo enteros a cadenas (y visceversa) en Java

27ene09

De int a String

Para realizar la conversión de números enteros a cadena podemos utilizar el método estático toString de la clase Integer,de la siguiente forma:

int i = 12;
String s = Integer.toString(i);

De String a int

Para realizar la conversión de una cadena a un podemos utilizar el método estático parseInt de la clase Integer,de la siguiente forma:

String s = "38";
int i = Integer.parseInt(s);

Se puede llegar a producir una excepción del tipo NumberFormatException si la cadena pasada contiene basura (espacios en blanco, caracteres, simbolos de puntuación, etc), caso en el cual deberá limpiarse antes de convertirse:

try {
   String s = "38.0";
   int i = Integer.parseInt(s);
} catch (NumberFormatException nfe) {
   System.err.println("Error de conversion de " + b + ": " + nfe.getMessage());
}

En este caso imprimirá por la consola:

Error de conversion: For input string: “38.0”

Espero les sirva
Saludos

About these ads


8 Responses to “Convirtiendo enteros a cadenas (y visceversa) en Java”

  1. Otra posibilidad para convertir de int a String es:

    String s = "" + 123;
    

    Saludos,
    Pablo

  2. @Pablo tal como dices es otra posibilidad. Ahí el que juega un papel importante es el compilador, acá hay algo más del tema para los más curiosos.

    Resumiendo un poco, el compilador toma la linea:

    String s = “” + 123;
    

    y la convierte en:

    String s = “123";
    

    ya que tanto “” como 123 son constantes.

    Otro caso sería si el compilador encuentra:

    int i = 123;
    String s = “” + i;
    

    como el compilador no puede determinar que valor tendrá i, lo que hace es convertir la instruccion en:

    int i = 123;
    String s = (new StringBuilder()).append("").append(i).toString();  
    

    donde append(i) convierte el entero a String (de forma similar a String.valueOf(i)) y lo agrega al StringBuilder creado.

    Saludos y gracias

  3. Vale la aclaración.

    Otra forma de convertir números a cadena, útil cuando vaya a ser incluído en un mensaje, es usar las funciones de formato. Especialmente las nuevas, como printf(), que son muy cómodas y prácticas.

    Por ej.:

    String s = "38";
    int i = Integer.parseInt(s);
    System.out.printf("El valor de 'i' es %d", i);
    

    Que mostrará:
    El valor de ‘i’ es 38

    Slds.-
    Pablo

  4. Hola
    pues yo lo haria con un cast

    int i=999;
    /*donde cad=”999″*/
    String cad=(String)i;

    /*String a Entero*/
    /*donde j=999*,vuelve a tomar el valor de i*/
    int j=Integer.parseInt(cad);

    SAlu2

  5. 5 xavier

    necesito ayuda necesit convertir palabras a letras, es decir si yo ingreso docientos veinticinco me imprima el numero 225, e estado unvestigando y solamente e encontado lo opuesto, es decir, ingreso el numero 225 y me imprime la palabre docientos veinticinco

  6. 6 xavier

    necesito ayuda necesit convertir palabras a letras, es decir si yo ingreso docientos veinticinco me imprima el numero 225, e estado unvestigando y solamente e encontado lo opuesto, es decir, ingreso el numero 225 y me imprime la palabre docientos veinticinco, por favor necesito ayuda y no se como hacerlo

    • 7 oscar

      main()
      {
      int num;
      float vuni,vdec;

      printf( “\nIngresa numero del 1 al 100:\n”);
      scanf(“%d”,&num);

      while ( num<0&&num<101)
      {

      if (num==1)
      printf ("\nUno ");
      if (num==2)
      printf ("Dos\n");
      if (num==3)
      printf ("Tres\n");
      if (num==4)
      printf ("Cuatro\n");
      if (num==5)
      printf ("Cinco\n");
      if (num==6)
      printf ("Seis\n");
      if (num==7)
      printf ("Siete\n");
      if (num==8)
      printf ("Ocho\n");
      if (num==9)
      printf ("Nueve\n");

      if (num==10)
      printf ("Diez\n ");
      if (num==11)
      printf ("Once\n");
      if (num==12)
      printf ("Dose\n");
      if (num==13)
      printf ("Trese\n");
      if (num==14)
      printf ("Catorce\n");
      if (num==15)
      printf ("Quince\n");

      if(num==20)
      printf ("\nVeinte");

      if(num==100)
      printf ("\nCien");

      }

      vuni=num%10;
      vdec=num/10;

      if (vdec==1)
      printf ("\nDiesi");

      if (vdec==2)
      printf ("\nVeiti");

      if (vdec==3)
      printf ("\nTreinta ");

      if (vdec==4)
      printf ("\nCuarenta ");

      if (vdec==5)
      printf ("\nCincuenta ");

      if (vdec==6)
      printf ("\nSesenta ");

      if (vdec==7)
      printf ("\nSetenta ");

      if (vdec==8)
      printf ("\nOchenta ");

      if (vdec==9)
      printf ("\nNoventa ");

      if (vuni==1)
      printf ("y uno\n");
      if (vuni==2)
      printf ("y dos\n");
      if (vuni==3)
      printf ("y tres\n");
      if (vuni==4)
      printf ("y cuatro\n");
      if (vuni==5)
      printf ("y cinco\n");
      if (vuni==6)
      printf ("y seis\n");
      if (vuni==7)
      printf ("y siete\n");
      if (vuni==8)
      printf ("y ocho\n");
      if (vuni==9)
      printf ("y nueve\n");

      printf( "\n\n*********************************\n\n");
      printf( "\n\nIngresa numero del 0 al 100:\n");
      scanf("%d",&num);getchar();getchar();

      }


  1. 1 Bitacoras.com

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: