有没有办法将null转换为Integer。 null实际上是一个String,我在我的服务层传递,它接受它作为一个整数。因此,每当我尝试将null String转换为Integer时,它都会抛出异常。但我必须将null转换为Integer。
由于
答案 0 :(得分:22)
您无法从String转换为Integer。但是,如果您尝试将字符串转换为整数,并且您必须提供处理null
字符串的实现,请查看此代码段:
String str = "...";
// suppose str becomes null after some operation(s).
int number = 0;
try
{
if(str != null)
number = Integer.parseInt(str);
}
catch (NumberFormatException e)
{
number = 0;
}
答案 1 :(得分:8)
如果你正在使用 apache commons ,那么有一个帮助方法可以解决这个问题:
NumberUtils.createInteger(myString)
如documentation中所述:
“将String
转换为Integer
,处理十六进制和八进制表示法;如果字符串为null
,则返回null
;如果值为NumberFormatException
则返回{{1}}无法转换。
答案 2 :(得分:6)
String s= "";
int i=0;
i=Integer.parseInt(s+0);
System.out.println(i);
试试这个
答案 3 :(得分:3)
您无法从String转换为Integer。
Java数据类型有两种:原始和引用。原始类型是: byte,short,int,long,char,float,double 。引用类型为:类,接口,数组。
字节 - >短 - > int - >长 - >浮动 - > double。是允许的,或者转换可以是它自己的类型,也可以是它的子类或超类类型或接口之一。
所以这是一个前任。功能一看
public int getInteger(String no) {
if (no != null) {
return Integer.parseInt(no); //convert your string into integer
} else {
return 0; // or what you want to return if string is Null
}
}
答案 4 :(得分:2)
这个怎么样?
private static void castTest() {
System.out.println(getInteger(null));
System.out.println(getInteger("003"));
int a = getInteger("55");
System.out.println(a);
}
private static Integer getInteger(String str) {
if (str == null) {
return new Integer(0);
} else {
return Integer.parseInt(str);
}
}
答案 5 :(得分:0)
如果您确定只需要处理空值,
int i=0;
i=(str==null?i:Integer.parseInt(str));
System.out.println(i);
对于非整数字符串,它将抛出Numberformat异常
答案 6 :(得分:0)
如果字符串为null,请尝试以下code:application
将返回0
否则如果字符串仅包含数字,则会将字符串解析为int
。
代码:
(str.equals("null")?0:Integer.parseInt(str))