parsestring java string integer decimal-point

parsestring java



Integer.valueOf() versus Integer.parseInt() (5)

Esta pregunta ya tiene una respuesta aquí:

Además de Integer.parseInt() manejando el signo menos (como está documentado), ¿hay alguna otra diferencia entre Integer.valueOf() y Integer.parseInt() ?

Y como ninguno puede analizar , como decimal separador de miles (produce NumberFormatException ), ¿hay un método Java disponible para hacerlo?


En realidad, valueOf usa parseInt internamente. La diferencia es parseInt devuelve una primitiva int mientras que valueOf devuelve un objeto Integer . Considere de la fuente Integer.class:

public static int parseInt(String s) throws NumberFormatException { return parseInt(s, 10); } public static Integer valueOf(String s, int radix) throws NumberFormatException { return Integer.valueOf(parseInt(s, radix)); } public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(parseInt(s, 10)); }

En cuanto a analizar con una coma, no estoy familiarizado con ninguno. Yo los desinfectaría.

int million = Integer.parseInt("1,000,000".replace(",", ""));


La diferencia entre estos dos métodos es:

  • parseXxx() devuelve el tipo primitivo
  • valueOf() devuelve una referencia de objeto contenedor del tipo.

Integer.valueOf() devuelve un objeto Integer, mientras que Integer.parseInt() devuelve una primitiva int .


parseInt() analiza String a int mientras que valueOf() también ajusta este int en Integer . Esa es la única diferencia.

Si desea tener control total sobre el análisis de números enteros, consulte NumberFormat con varias configuraciones regionales.


Primera pregunta : ¿ diferencia entre parseInt y valueOf en java?

Segunda pregunta :

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();

Tercera pregunta :

DecimalFormat df = new DecimalFormat(); DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setDecimalSeparator(''.''); symbols.setGroupingSeparator('',''); df.setDecimalFormatSymbols(symbols); df.parse(p);