JavaRush /Blog Java /Random-ES /Pregunta y respuesta: ¿Cómo convertir correctamente Strin...

Pregunta y respuesta: ¿Cómo convertir correctamente String a int en Java?

Publicado en el grupo Random-ES
Nivel aproximado de conocimientos requeridos: búsqueda de sintaxis de Java y un poco de núcleo de Java.
Pregunta y respuesta: ¿Cómo convertir correctamente String a int en Java?  - 1
Al final de la primera misión de JavaRush, aprendemos sobre la conversión de tipos. En las conferencias de nivel 10, pudiste ver que la conversión intes Stringmuy simple y, en general, se puede convertir a casi cualquier tipo primitivo Stringsin problemas.
int x = 5;
String text = "X=" + x;
Además, aquellos que ya han completado el nivel 10 de la misión de sintaxis de Java saben que es imposible convertir una referencia a un número en una referencia a una cadena. Entonces, ¿cuál es la mejor manera de convertir una cadena en un entero primitivo? Es mejor hacer esto usando el método parseIntde clase Integer. El método parseIntdebe convertir Stringy intarroja una excepción NumberFormatExceptionsi la cadena no se puede convertir al tipo int.

Ejemplo

Línea básica que convierte una cadena en un número entero:
int i = Integer.parseInt (myString);
Si la cadena indicada por la variable myStringes un número entero válido, como "1", "200", Java la convertirá silenciosamente a un tipo de datos primitivo int. Si por alguna razón esto falla, dicha acción puede generar una excepción NumberFormatException, por lo que para que el programa funcione correctamente para cualquier cadena, necesitamos un poco más de código. Un programa que demuestra el método de conversión Java Stringa intcontrol para posibles NumberFormatException:
public class JavaStringToIntExample
{
  public static void main (String[] args)
  {
    // Cadena s = "fredo"; // use esto si necesita probar la excepción // a continuación
String s = "100";

    try
    {
      // aquí es donde String se convierte a int
      int i = Integer.parseInt(s.trim());

      // mostrar el valor después de la conversión
      System.out.println("int i = " + i);
    }
    catch (NumberFormatException nfe)
    {
      System.out.println("NumberFormatException: " + nfe.getMessage());
    }
  }

Discusión

Cuando estudies el ejemplo anterior, verás que el método Integer.parseInt (s.trim ())se utiliza para convertir una cadena sen un número entero i, y esto sucede en la siguiente línea de código:
int i = Integer.parseInt (s.trim ())
Pero a veces convertir una cadena en un número simplemente no funciona. En nuestro ejemplo, dicha cadena es el nombre fred. Podemos hablar de códigos en los que se escriben letras en una computadora, pero, formalmente hablando, fred no es un número y es mejor dejarlo como una cadena. Nuestro programa está diseñado para que si intentas convertir "fred" en un número, el proceso Integer parseIntarroje una excepción NumberFormatException, que debes manejar en un bloque try / catch. En este caso no es necesario utilizar el método trim ()de clase String, pero en la programación real sí deberías utilizarlo. Así que te lo mostramos. Dado que surgió este tema, aquí hay algunos “consejos” sobre el tema de las clases Stringy Integer:
  • Integer.toString (int i)Se utiliza para convertir inta cadenas Java.
  • Si desea convertir un objeto Stringen un objeto Integer(en lugar de una clase primitiva int), utilice el método valueOf ()de clase Integeren lugar de parseInt ().
  • Si necesita convertir cadenas en campos Java primitivos adicionales, utilice métodos como este Long.parseLong ().
Respondido por: Alice Watson
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION