Java-如果输入不是整数,如何重新编译用户

Java-如果输入不是整数,如何重新编译用户,java,Java,如果输入的值不是整数,我想重新提示(noofcases)用户。我对java比较新。请建议我最好的方法,我可以重新提示(noofcases)用户再次输入整数值,直到用户输入整数值 public static void main(String[] args) { fetchinput(); } public static void fetchinput() { int noofcases = 0; Scanner input= new Scanner(System.in);

如果输入的值不是整数,我想重新提示(noofcases)用户。我对java比较新。请建议我最好的方法,我可以重新提示(noofcases)用户再次输入整数值,直到用户输入整数值

public static void main(String[] args)
{
    fetchinput();
}
public static void fetchinput()
{
    int noofcases = 0;
    Scanner input= new Scanner(System.in);
    noofcases=input.nextInt();
    ArrayList<String> StringA = new ArrayList<String>();
    ArrayList<String> StringB = new ArrayList<String>();
    for (int i=0;i<noofcases;i++)
    {
        StringA.add(input.next());
        StringB.add(input.next());
    }
    input.close();
    System.out.println(StringA);
    System.out.println(StringB);
}
publicstaticvoidmain(字符串[]args)
{
fetchinput();
}
公共静态void fetchinput()
{
int noofcases=0;
扫描仪输入=新扫描仪(System.in);
noofcases=input.nextInt();
ArrayList StringA=新的ArrayList();
ArrayList StringB=新的ArrayList();

对于(inti=0;i尝试在Try{}catch(numberformatexe)中使用Integer.parse()转换输入字符串当一个新的输入请求发生异常时,打印到System out。其余的是再次读取相同的输入流。如果您希望,您可以在while循环中执行此操作,或者在一个变量中计算失败次数以中止。

我倾向于使用以下方法:

public int getNextInt(String promptMessage) {
    Integer ret; //We use Integer so it can be null
    do {
        System.out.println(promptMessage);
        String str = in.nextLine(); //nextLine is cleaner and doesn't get caught on newline characters
        try {
            ret = Integer.parseInt(str);
        catch(NumberFormatException e) { //Invalid
            System.out.println("Input an integer."); 
        }
    } while(ret==null); //Loop while invalid
    return ret; //Return result, unboxed
}