parseInt抛出错误

时间:2014-09-30 19:29:26

标签: java numberformatexception parseint

我在java中有一小段代码,在代码运行时抛出以下错误

线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“10000000000”     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)     在java.lang.Integer.parseInt(Integer.java:495)     在java.lang.Integer.parseInt(Integer.java:527)     在hello.main(hello.java:6)

public class hello {
    public static void main(String args[])
    {
        int x = 1024;
        String h = Integer.toString(x, 2);
        int xx = 9*(Integer.parseInt(h));
        System.out.println(xx);
    }
}

我怀疑这个问题与值/ parseInt的大小有关。你能详细解释一下这个错误的原因吗?

3 个答案:

答案 0 :(得分:3)

这是因为它超过了整数2,147,483,647

的最大值

答案 1 :(得分:2)

您将获得java.lang.NumberFormatException:对于输入字符串:" 10000000000"因为它超出了int的范围。

integer是带符号的32位类型,范围从-2,147,483,648到2,147,483,647。 long是带符号的64位类型,适用于int类型不足以保持所需值的情况,范围从-9,223,372,036,854,775,808到 9,223,372,036,854,775,807。这使得当需要大的整数时它很有用。

试试这行代码 -

long xx = 9*(Long.parseLong(h));

答案 2 :(得分:1)

您收到此错误是因为您尝试解析的值对于Integer类型而言太大。请尝试使用Long。