Una cadena de caracteres que contenga valores numéricos, puede ser transformada a uno de los tipos de datos numéricos que sean compatibles y viceversa, utilizando el método ValueOf() precedido del nombre de la clase correspondiente al tipo de dato al que se desea convertir:

Para convertir un valor numérico a String se dispone de los siguientes métodos de la clase String:

  • static String valueOf(int i)
  • static String valueOf(double d)

También existe el mismo método para los demás tipos de datos básicos (long, float, boolean, etc).

Para convertir de String a valor numérico se dispone de los siguientes métodos, por ejemplo, de las clases Integer y Double:

  • static Integer valueOf(String s)
  • static Double valueOf(String s)

Otra posibilidad es utilizar los métodos parse de las clases asociadas a los tipos de datos básicos. Por ejemplo:

  • static int parseInt(String s)
  • static double parseDouble(String s)

Al igual que antes, existen métodos similares para el resto de las clases asociadas a los tipos de datos básicos.

Hay que observar que todos estos métodos tienen el modificador static, por lo que deben ser invocados sin utilizar un objeto de esas clases, sino directamente el nombre de las clases.

Ejemplo:

int valorEntero;
long valorLargo;
float valorReal;
double valorDoble;
String cadenaConValor;
 
valorEntero = Integer.valueOf("374");
valorEntero = Integer.parseInt("547");
valorLargo = Long.valueOf("28462837");
valorLargo = Long.parseLong("9743989845");
valorReal = Float.valueOf("233.83");
valorReal = Float.parseFloat("34.3459");
valorDoble = Double.valueOf("873.9321");
valorDoble = Double.parseDouble("234.823");
cadenaConValor = String.valueOf(2556);

Cuando no se puede realizar la conversión de String a un tipo de dato numérico, por ejemplo, porque contiene una letra, se produce un error por la excepción NumberFormatException.

 Exception in thread "main" java.lang.NumberFormatException: For input string: "Esto es texto"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at Convert.main(Convert.java:4)