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. 1 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

    • 2 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();

      }

  2. 3 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

  3. 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

  4. 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

  5. @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

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

    String s = "" + 123;
    

    Saludos,
    Pablo


  1. 1 Bitacoras.com

Seguir

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

A %d blogueros les gusta esto: