我有一系列骰子,对于每个骰子,我都需要提示用户是否愿意重新掷骰子。最简单的方法似乎是 Scanner 类的提示 - 我检查他们输入的内容并正确处理。但是,如果用户输入中不存在请求的数据,scanner.next() 将抛出异常。所以,scanner.hasnext() 需要以某种方式适应这里。
这是我的代码;它会将条目输入到响应数组中,但如果用户输入既不包含 Y 也不包含 N,则会引发异常。
public Boolean[] chooseDice(int diceNum){
Boolean[] responses = new Boolean[diceNum];
Scanner scansworth = new Scanner(System.in);
for (int i=0; i<diceNum; i++){
System.out.printf("Reroll this die? (%d)\n",i);
responses[i] = (scansworth.next("[YN]")) == "Y" ? true : false;
}
return responses;
如何调用 scansworth.hasNext("[YN]") 以便解释器不会锁定并在循环的每个步骤之后正确检查条目?