有没有办法将null转换为Integer。实际上,这个null是一个字符串,在我的服务层中我将其作为整数接受。因此,每当我尝试将空字符串转换为Integer时,它就会抛出异常。但我必须将null转换为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;
}
如文档中所述:
NumberUtils.createInteger(myString)
String
转换成 Integer
,处理十六进制和八进制表示法;如果字符串是 null
,则返回 null
;如果无法转换值,则抛出 NumberFormatException
。"Integer#parseInt()/valueOf()
,而是调用 Integer#decode()
! - d56String s= "";
int i=0;
i=Integer.parseInt(s+0);
System.out.println(i);
试试这个
int.Parse(0 + s);
而不是反过来。这样做可以确保在s
为空字符串时也能正常工作,但如果s
为11,则当前方法会返回110。 - cogumel0private 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);
}
}
application
如果字符串为空,则返回0
;否则,如果字符串仅包含数字,则将其解析为int
。(str.equals("null")?0:Integer.parseInt(str))
如果您确定只需要处理空值,
int i=0;
i=(str==null?i:Integer.parseInt(str));
System.out.println(i);
对于非整数字符串,它会抛出 Numberformat 异常。
Integer.parseInt()
还是直接强制类型转换? - Jon Egelandnull
可以属于所有类型,因此将一个"String"null
强制转换为"Integer"null
不应该有问题。 - oconnor0