Integer.valueOf() vs. Integer.parseInt()

2022-08-31 06:27:34

除了处理减号(如文档所述)之外,和 之间还有其他区别吗?Integer.parseInt()Integer.valueOf()Integer.parseInt()

而且,由于两者都不能解析为十进制千位分隔符(产生),是否有已经可用的Java方法来做到这一点?,NumberFormatException


答案 1

实际上,内部使用。差值是返回基元,而返回对象。考虑从整数.class源:valueOfparseIntparseIntintvalueOfInteger

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(",", ""));

答案 2

第一个问题parseInt和value在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);