Java 正在检查空int,几乎在那里

Java 正在检查空int,几乎在那里,java,recursion,user-input,Java,Recursion,User Input,在我的河内塔程序中,我试图检查当提示输入“最小光盘数”和“最大光盘数”时,用户是否没有输入任何内容。我最初只有最少的光盘,现在当提示输入“最大光盘”时,我似乎无法通过检查空输入 如何检查最大光碟提示上的空输入?如果用户没有输入任何内容,则默认为3张光盘解决我的难题。 我在代码中注释掉了我试图解决的问题 代码: import java.util.Scanner; 导入java.util.*; 河内公务舱{ 静态整数移动=0; 静态布尔displayMoves=false; 公共静态void mai

在我的河内塔程序中,我试图检查当提示输入“最小光盘数”和“最大光盘数”时,用户是否没有输入任何内容。我最初只有最少的光盘,现在当提示输入“最大光盘”时,我似乎无法通过检查空输入

如何检查最大光碟提示上的空输入?如果用户没有输入任何内容,则默认为3张光盘解决我的难题。

我在代码中注释掉了我试图解决的问题

代码:

import java.util.Scanner;
导入java.util.*;
河内公务舱{
静态整数移动=0;
静态布尔displayMoves=false;
公共静态void main(字符串[]args){
System.out.print(“输入光盘的最小数量:”);
扫描器minD=新扫描器(System.in);
字符串高度=minD.nextLine();
System.out.println();
字符源='S',辅助='D',目标='A';//'S'
System.out.print(“输入最大光盘数:”);
扫描器maxD=新扫描器(System.in);
int heightmx=maxD.nextInt();
System.out.println();
//int-iMax=3;
//if(heightmx.isEmpty()){//if非空
//iMax=Integer.parseInt(heightmx);
//河内(iMax、来源、目的地、辅助);
//       }  
int iHeight=3;//默认值为3
如果(!height.trim().isEmpty()){//如果不是空的
iHeight=Integer.parseInt(高度);//使用该值
如果(iHeight>heightmx){
河内(iHeight、来源、目的地、辅助);
}
System.out.print(“按'v'或'v'查看移动列表:”);
扫描仪显示=新扫描仪(System.in);
字符串c=show.next();
displayMoves=c.equalsIgnoreCase(“v”);
}
对于(整数i=iHeight;i=1){
河内(高度-1,来源,辅助,目的地);
如果(显示移动){
System.out.println(“将光盘从指针“+源+”移动到”
+目的地);
}
移动++;
河内(高度-1,辅助,目的地,来源);
} 
}
}

使用
nextInt
将不会有空整数

int height = minD.nextInt();
行:

应该是:

String heightmx = maxD.nextLine();
我希望

if (heightmx.isEmpty()) {   //If not empty
这是一个输入错误,因为你是在检查是否为空,而不是相反(就像你的评论所建议的那样)

此外,使用

maxD.nextLine(); 
而不是

maxD.nextInt();

谢谢嘿,你能帮我很快解决这个问题吗,这对我来说已经不起作用了,但我不知道为什么,在我的代码中:如果我有输入,比如输入最小数量的光盘:3输入最大数量的光盘:2输出应该只解决最小数量的光盘,在这种情况下是3张光盘。为什么我的代码现在不适用于此案例?我比较了这两个,但现在它不起作用了!如果min discs大于max discs,则程序在询问我的输入后立即停止。如果min discs>max discs,我需要它来解决输入的min discs问题。您是否尝试单步执行代码或在此处或那里打印高度和高度mx的值?很高兴我能提供帮助!通过接受答案来回报他人;)
maxD.nextLine(); 
maxD.nextInt();