Java 将空值设置为整数

Java 将空值设置为整数,java,string,Java,String,如何将null初始设置为整数变量而不是“0”。我知道默认情况下所有int值都是“0”。我使用了String.valueOf()方法等。我不想打印为“null”。我想打印空白的像“”。我得到数字格式异常。请给出一个解决方案 提前谢谢 这是密码 public class IntegerDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-

如何将null初始设置为整数变量而不是“0”。我知道默认情况下所有int值都是“0”。我使用了
String.valueOf()
方法等。我不想打印为“null”。我想打印空白的像“”。我得到数字格式异常。请给出一个解决方案

提前谢谢

这是密码

public class IntegerDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String id="";


        System.out.println(""+Integer.parseInt(id));

    }
}
使用包装类而不是原语

Integer myInt= null;
对于对象引用,可以将其设置为null。但不能使用包装类而不是原语

Integer myInt= null;
Integer int = null;
对于对象引用,可以将其设置为null。但不能将其设置为
基本体

Integer int = null;
int是基本体,它们的默认值不同于null


int是原语,它们的默认值不同于null。

您必须坚持使用
java.lang.Integer

String id = ""
Integer test = null;

if (!"".equals(id))
{
   test = Integer.parseInt(id);
}

您必须坚持使用
java.lang.Integer

String id = ""
Integer test = null;

if (!"".equals(id))
{
   test = Integer.parseInt(id);
}

创建主值为
null
Integer
实例毫无意义,但您可以在声明时执行此操作:

Integer id = null;
您获得
NumberFormatException
的原因如下:

如果发生以下任何情况,将引发NumberFormatException类型的异常:

  • 第一个参数为null或长度为零的字符串。

  • 基数小于Character.MIN_基数或大于Character.MAX_基数

  • 字符串的任何字符都不是指定基数的数字,除非第一个>字符可以是减号“-”('\u002D')或加号“+”('\u002B'),前提是字符串长度大于1

  • 字符串表示的值不是int类型的值


您不能调用
Integer.parseInt(“”)或
Integer.parseInt(null)
,有此限制。

创建一个
Integer
的实例,其主值为
null
,这是毫无意义的,但您可以在声明时执行此操作:

Integer id = null;
您获得
NumberFormatException
的原因如下:

如果发生以下任何情况,将引发NumberFormatException类型的异常:

  • 第一个参数为null或长度为零的字符串。

  • 基数小于Character.MIN_基数或大于Character.MAX_基数

  • 字符串的任何字符都不是指定基数的数字,除非第一个>字符可以是减号“-”('\u002D')或加号“+”('\u002B'),前提是字符串长度大于1

  • 字符串表示的值不是int类型的值


您不能调用
Integer.parseInt(“”)
Integer.parseInt(null)
,有此限制。

简单的装箱整数
Integer i=null已提供。这里有一个替代方案:

class NullableInt {
    private int value;
    private boolean isNull;
    public NullableInt() { isNull = true; }
    public NullableInt(int value) { 
      this.value = value; 
      isNull = false;
    }
    public NullableInt(String intRep) {
      try { value = Integer.parseInt(intRep);
      } catch (NumberFormatException) {
         isNull = true;
      }
    }
    boolean isNull() { return isNull; }
    void setNull(boolean toNull) { isNull = toNull; }
    void setValue(int value) { this.value = value; }
    int getValue() { return value; }
    @Override 
    public String toString() { return isNull ? "" : value; }
}

NullableInt integer1 = new NullableInt(56);
NullableInt integer2 = new NullableInt();

System.out.pritnln(integer1); // >> "56"
System.out.println(integer2); // >> ""

// and finally, to address the actual question:
String id = "";
System.out.println(new NullableInt(id)); // >> ""

简单装箱整数
整数i=null已提供。这里有一个替代方案:

class NullableInt {
    private int value;
    private boolean isNull;
    public NullableInt() { isNull = true; }
    public NullableInt(int value) { 
      this.value = value; 
      isNull = false;
    }
    public NullableInt(String intRep) {
      try { value = Integer.parseInt(intRep);
      } catch (NumberFormatException) {
         isNull = true;
      }
    }
    boolean isNull() { return isNull; }
    void setNull(boolean toNull) { isNull = toNull; }
    void setValue(int value) { this.value = value; }
    int getValue() { return value; }
    @Override 
    public String toString() { return isNull ? "" : value; }
}

NullableInt integer1 = new NullableInt(56);
NullableInt integer2 = new NullableInt();

System.out.pritnln(integer1); // >> "56"
System.out.println(integer2); // >> ""

// and finally, to address the actual question:
String id = "";
System.out.println(new NullableInt(id)); // >> ""

我相信你把问题复杂化了,这是一件非常简单的事情。检查以下代码:

Integer i = null;
System.out.println(i == null ?"":i);

我相信你把问题复杂化了,这是一件非常简单的事情。检查以下代码:

Integer i = null;
System.out.println(i == null ?"":i);

如果将
null
blank
解析为int,它将抛出
numberFormatException
。在解析之前检查:

try{
   System.out.println(StringUtils.isNotBlank(id)?Integer.parseInt(id):"");
}
catch(NumberFormatException e){
   System.out.println("Not A Number");
}

通过捕获异常,还可以确保字符串是否没有数字
StringUtils.isNotBlank()
将检查
null
blank
如果将
null
blank
解析为int,它将抛出
numberFormatException
。在解析之前检查:

try{
   System.out.println(StringUtils.isNotBlank(id)?Integer.parseInt(id):"");
}
catch(NumberFormatException e){
   System.out.println("Not A Number");
}

通过捕获异常,还可以确保字符串是否没有数字
StringUtils.isNotBlank()
将检查
null
以及
blank
而不是解析,我们可以使用
Integer.valueOf(null)

我们可以使用
Integer.valueOf(null)代替parse

int
是一个保留关键字;这不是有效的Java语法。此外,OP不是指原语。是的,我对变量名有错误,但显然我也不是指原语。
int
是一个保留关键字;这不是有效的Java语法。此外,OP不是指原语。是的,我对变量名有错误,但显然我也不是指原语。
parseInt
是方法。
parseInt
是方法。if(Integer.parseInt(id)==0){System.out.println(“”;}if(Integer.parseInt(id)==0){System.out.println(“”;}