175 votes

Entier.valueOf() vs Entier.parseInt()

Hormis Integer.parseInt() de la manipulation du signe moins (comme indiqué), existe-il d'autres différences entre Integer.valueOf() et Integer.parseInt()?

Et comme ni peut analyser , comme une virgule séparateur de milliers (produit NumberFormatException), est-il déjà disponible Java de la méthode pour le faire?

224voto

corsiKa Points 39442

En fait, valueOf utilise parseInt en interne. La différence est - parseInt renvoie un int primitives tout en valueOf renvoie un Integer objet. Envisager de l'Integer.class source:

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));
}

Comme pour l'analyse avec une virgule, je ne suis pas familier avec. Je les désinfecter.

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

30voto

Martijn Courteaux Points 33836

Première Question: la Différence entre parseInt et valueOf en java?

Deuxième Question:

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

Troisième Question:

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

21voto

Joe Points 1516

Integer.valueOf() renvoie un Entier de l'objet, tandis que l' Integer.parseInt() renvoie un int primitives.

8voto

Tomasz Nurkiewicz Points 140462

parseInt() analyse String de int tout valueOf() de plus encapsule ce int en Integer. C'est la seule différence.

Si vous voulez avoir le plein contrôle sur l'analyse des entiers, découvrez NumberFormat avec les différents paramètres régionaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X