语法: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);
}
}
抛出错误
我只想知道基数!我想这将解决我的问题。
答案 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为基数,十进制)