首页 > 解决方案 > 如果输入无效,当使用递归要求再次输入数据值时,如何解决此问题,stringbuilder 变量恢复为第一个输入?

问题描述

在此方法中,stringbuilder 变量在重新运行模块时返回到第一个无效值。testArray 方法有一个长度为 3 的数组传递给它。

我试图通过将长度设置为 0 来清除字符串生成器,但这不起作用。

public static int[] requestLocation(int testArray[]){
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter a Number 0-2");
    StringBuilder input = new StringBuilder(keyboard.nextLine());
   if(Character.getNumericValue(input.charAt(0)) > 2){
      *System.out.println(input);
      System.out.println("Input is Invalid");
      requestLocation(testArray);
      }
   **System.out.println(input);
   testArray[Character.getNumericValue(input.charAt(0))] = 10;
   return testArray;

如果我运行程序并输入 3,它会给我一条错误消息并要求我再次输入。如果我输入 1 if 会给我一个数组越界错误。带有一颗星的打印语句会给我 1,带有 2 星的打印语句会给我 3

标签: javarecursion

解决方案


推荐阅读