将Null字符串转换为整数

时间:2012-03-07 04:45:37

标签: java casting

有没有办法将null转换为Integer。 null实际上是一个String,我在我的服务层传递,它接受它作为一个整数。因此,每当我尝试将null String转换为Integer时,它都会抛出异常。但我必须将null转换为Integer。

由于

7 个答案:

答案 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))