Cómo convertir cadenas a números y viceversa en Java

Por lo general, en una interfaz gráfica de usuario, habrá campos de texto que esperan que el usuario ingrese un valor numérico. Este valor numérico terminará en un objeto String que realmente no ayuda a su programa si desea hacer algo de aritmética. Afortunadamente, hay clases de contenedor que proporcionan métodos para convertir esos valores de String en números y la clase String tiene un método para volver a convertirlos.

Clases de envoltura

Los tipos de datos primitivos que tratan con números (es decir, byte, int, doble, flotante, largo y corto) tienen equivalentes de clase. Estas clases se conocen como clases envolventes, ya que toman un tipo de datos primitivo y lo rodean con la funcionalidad de una clase. Por ejemplo, la clase Doble tendrá un valor doble como datos y proporcionará métodos para manipular ese valor..

Todas estas clases de contenedor tienen un método llamado valueOf. Este método toma un String como argumento y devuelve una instancia de la clase wrapper. Por ejemplo, supongamos que tenemos una cadena con el valor de diez:

Número de cadena = "10";

Tener este número como una Cadena no nos sirve, así que usamos la clase Integer para convertirlo en un objeto Integer:

Entero convertidoNúmero = Integer.valueOf (número);

Ahora el número se puede usar como un número y no como una Cadena:

convertNumber = convertNumber + 20;

También puede hacer que la conversión vaya directamente a un tipo de datos primitivo:

int convertNumber = Integer.valueOf (número) .intValue ();

Para otros tipos de datos primitivos, simplemente coloca en el contenedor correcto clase Byte, Integer, Double, Float, Long Short.

Nota: Debe asegurarse de que la Cadena se pueda analizar en el tipo de datos apropiado. Si no puede, terminará con un error de tiempo de ejecución. Por ejemplo, tratando de convertir "diez" en un número entero:

Número de cadena = "diez";
int convertNumber = Integer.valueOf (número) .intValue ();

producirá una NumberFormatException porque el compilador no tiene idea de que "diez" se supone que es 10.

Más sutilmente, se producirá el mismo error si olvida que un 'int' solo puede contener números enteros:

Número de cadena = "10.5";
int convertNumber = Integer.valueOf (número) .intValue ();