Java 为int类型变量提供空值

Java 为int类型变量提供空值,java,Java,我是Java新手,我已经搜索了2天如何实现这一点,但仍然没有找到答案。在if语句中,我需要确保如果用户只按enter键而没有输入值,则消息将提示重新输入,如果用户输入的值小于1,也会提示重新输入。下面是我的代码片段。 我已经读过除null之外的int-cant,并且我尝试过Integer,但是我的代码不会用它运行 int numberOfCars = -1 while (numberOfCars == null || numberOfCars < 1) { numberOfCars

我是Java新手,我已经搜索了2天如何实现这一点,但仍然没有找到答案。在if语句中,我需要确保如果用户只按enter键而没有输入值,则消息将提示重新输入,如果用户输入的值小于1,也会提示重新输入。下面是我的代码片段。 我已经读过除null之外的int-cant,并且我尝试过Integer,但是我的代码不会用它运行

int numberOfCars = -1
while (numberOfCars == null || numberOfCars < 1)
{
    numberOfCars = (JOptionPane.showInputDialog("Enter number of cars."));
    if(numberOfCars == null || numberOfCars < 1)
    {
        JOptionPane.showMessageDialog(null, "Please enter a value.");
    }
}
int numberOfCars=-1
while(numberOfCars==null | | numberOfCars<1)
{
numberOfCars=(JOptionPane.showInputDialog(“输入汽车数量”);
如果(numberOfCars==null | | numberOfCars<1)
{
showMessageDialog(null,“请输入值”);
}
}
这与模式相匹配:

  • -?
    =减号,可选(
  • [0-9]+
    =来自
    […]
    的字符,其中0-9是范围、数字以及一次或多次(
    +
有关正则表达式的信息,请参见

Integer.parseInt(string)
给出从字符串中获取的
int
值。像这个除法 可能引发错误、数字格式异常


在这里,do-while循环将适合(它很少适合)。正常的while循环也可以。
JOptionPane.showInputDialog()
将返回一个
字符串。当您尝试使用
Integer.parseInt()
将输入值解析为
int
时,可以使用
try catch
语句检查输入值是否正确。这将适用于您的所有案例

因此,这可能会起作用:

int numberOfCars = -1;

while(numberOfCars < 1){
  try{
    numberOfCars = JOptionPane.showInputDialog("Enter number of cars.");

    if(numberOfCars < 1){
      JOptionPane.showMessageDialog(null, "Please enter a value.");
    }

  }catch(NumberFormatException e){
      JOptionPane.showMessageDialog(null, "Please enter numeric value.");
  }
}
int numberOfCars=-1;
同时(车辆数量<1){
试一试{
numberOfCars=JOptionPane.showInputDialog(“输入车辆数量”);
如果(车辆数量<1){
showMessageDialog(null,“请输入值”);
}
}捕获(数字格式){
showMessageDialog(null,“请输入数值”);
}
}

显式
int
等于空字符串或
null
的可能性有多大?
numberOfCars
无法等于空字符串或等于null。没有办法,对于任何
int
变量。相关-为什么这对你有意义:numberOfCars==“当汽车数量是一个int时,你永远不会给numberOfCars赋值-它总是
-1
如果你解释
Integer.parseInt()
匹配()
以及应用正则表达式,因为他/她是初学者。或者提供一个链接到一个声誉良好的资源这是完美的工作!导致错误的原因是缺少catch异常
Integer.parseInt(string)
int numberOfCars = -1;

while(numberOfCars < 1){
  try{
    numberOfCars = JOptionPane.showInputDialog("Enter number of cars.");

    if(numberOfCars < 1){
      JOptionPane.showMessageDialog(null, "Please enter a value.");
    }

  }catch(NumberFormatException e){
      JOptionPane.showMessageDialog(null, "Please enter numeric value.");
  }
}