Java中的Java.lang.Integer类

时间:2019-05-25 17:08:27

标签: java

语法:public static Integer valueOf(String val,int radix)             引发NumberFormatException 参数: val:要解析为int值的字符串 radix:解析时要使用的基数 抛出: NumberFormatException:如果无法将String解析为给定基数的int值。 这里的基数到底是什么?请解释一下我使用基数。我对它的用法感到困惑。我知道可以做我想做的!我只想知道基数的用法!您可以参考这些编。如果您想使用这些作为示例进行解释,请参见编1、2等。

public class Main
{

    public static void main(String[] args) throws NumberFormatException{

        String ba = "123456789";

        int ab = Integer.valueOf(ba,16);

        System.out.println(ab);

    }

}

这会引发NumberformatException

public class Main
{

    public static void main(String[] args) throws NumberFormatException{

        String ba = "ABCDEF";

        int ab = Integer.valueOf(ba,16);

        System.out.println(ab);

    }

}

但这会打印结果

检查了GFG,但没有安静地到达那里!

public class Main
{

    public static void main(String[] args) throws NumberFormatException{

        String ba = "123ABCDEF";

        int ab = Integer.valueOf(ba,16);

        System.out.println(ab);

    }

}

抛出错误

我只想知道基数!我想这将解决我的问题。

1 个答案:

答案 0 :(得分:2)

案例-1

理论-当您尝试执行将String转换为数值(例如int,float,double,long等)时,通常会发生Java NumberFormatException。

因此,在这种情况下,数字对于Integer较大,为123456789,因此不会传递该数字。因此,Java无法将非数字转换为数字。

*所以要解决您的主要问题=>“什么是基数”

它是您以String格式给出的数字的基数。例如, 如果您愿意,

String ba = "24";

int ab = Integer.valueOf(ba,5);

它返回ab = 14(以10为底的正常数字)

说明:- 24(以5为基数)= 4 * 1 + 2 * 5 = 14(以10为基数,十进制)