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