Integer.valueOf()与Integer.parseInt()
除了Integer.parseInt()
处理减号(如logging), Integer.valueOf()
和Integer.parseInt()
之间还有其他区别吗?
因为既不能parsing,
作为一个 十进制 千位分隔符(产生NumberFormatException
),有没有一个已经可用的Java方法来做到这一点?
其实, valueOf
内部使用parseInt
。 不同的是parseInt
返回一个int
原语,而valueOf
返回一个Integer
对象。 考虑从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)); }
至于用逗号分析,我不熟悉一个。 我会消毒他们。
int million = Integer.parseInt("1,000,000".replace(",", ""));
第一个问题 : 差异parseInt和valueOf在Java中?
第二个问题 :
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
第三个问题 :
DecimalFormat df = new DecimalFormat(); DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setDecimalSeparator('.'); symbols.setGroupingSeparator(','); df.setDecimalFormatSymbols(symbols); df.parse(p);
Integer.valueOf()
返回一个Integer 对象 ,而Integer.parseInt()
返回一个int
原语 。
parseInt()
将String
parsing为int
而valueOf()
将此int
另外包装到Integer
。 这是唯一的区别。
如果你想完全控制parsing整数,检查出不同的语言环境的NumberFormat
。
这两种方法的区别是:
-
parseXxx()
返回原始types -
valueOf()
返回types的包装器对象引用。