第一次循环迭代很好,但在按下字符'y'以便重复时,下次显示时,它不会让我输入另一个名称。我不知道可能是什么原因造成的,但是当你需要清除输入缓冲区时,它让我想起了C语言。循环中的BufferedReader错误
任何帮助肯定会受到赞赏。
byte counter = 1;
boolean myCondition = false;
List<String> myList = new ArrayList();
BufferedReader objReader = new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("Enter the #" +counter +" person's name:");
// low quality validation
String dude = objReader.readLine();
while (myList.contains(dude)){
System.out.println("Man, this dude:" +dude +" is already loaded into the List! Pick another name:\n");
dude = objReader.readLine();
}
myList.add(dude);
counter++;
System.out.println("Would you like to add another name to the list? yes/no");
char myChar = (char) System.in.read();
if (myChar == 'y' || myChar == 'Y')
myCondition = true;
else
myCondition = false;
} while (myCondition);
似乎确实像你的问题。我认为使用'扫描仪'将使这一切变得更容易。 – MByD
对不起,我只是在学习,但我认为Scanner只是为了读取文件而不是控制台输入。我错了吗?我想用最好的方法。 – Cristian
扫描仪用于读取包含标准输入的输入流。 – MByD