我创建了一个 do-loop 来继续迭代,直到用户输入以 Y 或 N 开头的单词,最初使用对char的原始检查,现在使用下面概述的方法来检查字符串是否相等。使用这两种比较媒体,我发现即使输入了“y”或“n”,循环也不会退出。我无法解释原因,希望您能:
以下是代码:
do{
System.out.println("Please Enter a Valid y/n Reply:");
eraseOr_no = histScanner.next();
if(histScanner.hasNext()){
(eraseOr_no.replaceAll("\\s+", "")).toLowerCase();
character = Character.toString(eraseOr_no.charAt(0));
//DEBUGGING
System.out.println("CHECKPOINT 5" + "----" + character);
//DEBUGGING
}
}while(!(character.equals("n")) || !(character.equals("y")));
很明显,我使用了一个简单的系统来通知我String character的值,并且您可能会看到它成功显示了“y”或“n”,这意味着我的第一个字母检索代码是功能,尽管整个 do 结构不是。
Continue
Answer:
CHECKPOINT 4.0.
PLACEHOLDER
Please Enter a Valid y/n Reply:
y
y
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
y
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
n
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
y
CHECKPOINT 5----n
Please Enter a Valid y/n Reply:
我应该尝试删除所有空格吗?我错过了更基本的东西吗?