java - 如果输入无效,当使用递归要求再次输入数据值时,如何解决此问题,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
解决方案
推荐阅读
- angular - 嵌套反应形式
- python - 在 Python 中替换 JSON 集合中项目的值
- ruby-on-rails - Rails:为 has_many 和 has_one 创建迁移
- ios - 枚举案例“国家”不是“RegisterViewController.options”类型的成员?为什么会这样?
- git - 如何克隆 WebService GitHub 存储库并使其在 Intellij Idea 上运行
- css - 自定义滚动条按钮
- python - 损失函数的数学意义是什么?
- python - 如何根据 Pandas 数据集上的分组条件查找列的总和和计数?
- php - PHP Laravel如何按类别排序
- javascript - 使用 FormData 时未获取文件数据