好了,我已经到了游戏的最后部分了,然后我会邀请你们所有人一起玩。它并不完美,但它是我的Java发展历程中的一个重要里程碑。所以在我的代码中,我调用了我的private类,以验证用户equalsIgnoreCase给出的解决方案,私有变量的解决方案是否包含在puzzle类中。如果匹配则返回true,否则返回false。在测试器上,如果我返回的是真的值,它应该会输出I‘the right,如果返回的是false,那么我就错了。问题是我输入的是对的,但它却告诉我我错了。为什么?
拼图:
public boolean solvePuzzle(String answer)
{
if(this.solution.equalsIgnoreCase(answer))
{
return true;
}
else
{
return false;
}
}
}字谜爱好者:
if(choice==2)
{
System.out.println("Please solve the puzzle");
input.nextLine();
String answer=input.next();
answer=answer.toUpperCase();
game.solvePuzzle(answer);
if(game.solvePuzzle(answer)==true)
{
System.out.println("That is correct");
}
else
{
System.out.println("You are wrong");
}
}
}发布于 2013-02-19 07:02:43
好的。解决方案提示:仔细阅读Scanner类的javadoc,特别是解释默认分隔符是什么的部分,以及next()方法的文档。现在看看解决方案是什么,并问问自己,它是否与默认分隔符有关。
要进行确认,请选择另一个解决方案,并查看它是否会更改某些内容。还可以打印您比较的变量的值,以查看它们实际包含的内容,或者学习使用Eclipse调试器。这并不难,我相信Eclipse有一个关于它的帮助页面。
发布于 2013-02-19 07:08:59
您的问题实际上只是使用Scanner,它默认使用空格进行分隔。您需要调用useDelimiter()方法来正确设置它。您可以使用BufferedReader:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))https://stackoverflow.com/questions/14946624
复制相似问题