系统输出难度大

时间:2013-09-23 22:38:09

标签: java system output

所以我对Java很新,我正在尝试运行一个程序,它会显示一个名字中的一定数量的字母并要求用户回复。用户的回答应该确定两个答案中的一个(“正确”或“我很抱歉,这是不正确的”)。 我遇到的问题是,当我运行程序并输入应该导致“正确”的答案时,即“Billy Joel”,我得到了“我很抱歉,这是不正确的”。 我实际上并不确定发生了什么,但是当我输入应该引导系统说出“正确”的内容时,这里有一个指向CMD图片的链接,而是说“我很抱歉,这是不正确的”:

enter image description here

以下是相关代码的副本:

System.out.println("\nLet's play Guess the Celebrity Name.");

String s6 = "Billy Joel";

System.out.println("\n" + s6.substring(2, 7));

Scanner kbReader3 = new Scanner(System.in);
System.out
        .print("\nPlease enter a guess for the name of the above celebrity: ");
String response = kbReader3.nextLine();

System.out.println("\nYou entered: \n" + response + "\n");

if ((response == "Billy Joel")) {
    // Execute the code here if Billy Joel is entered
    System.out.println("\nCorrect!");
} else {
    // Execute the code here if Billy Joel is not entered
    System.out.println("\nI'm sorry, that's incorrect. The right answer was Billy Joel.");
}

System.out.println("\nThank you for playing!");

在此之前还有更多的程序也可以,但我没有任何问题,这一切都是正确的。我拿出比利乔尔的部分,其他一切都完全按照预期运行。只是上面的代码与它应该提出什么以及它是什么推出的问题。我想知道是否我错过了我的代码中的某些内容或者我的错误,但无论我做了什么,都会非常感谢帮助。

2 个答案:

答案 0 :(得分:0)

你的问题就在这里。您使用错误的运算符来比较字符串

if ((response **==** "Billy Joel")) {
   System.out.println("\nCorrect!");
} else {  ...  }

正确的应该是

if ((response.equals("Billy Joel")) {
   System.out.println("\nCorrect!");
} else {  ...  }

要比较java中的字符串,必须使用.equals()运算符。要使用'=='运算符,您需要使用int,bool等

答案 1 :(得分:0)

    if (response!=null && response.length>0){
    //trim the input to make sure there are any spaces
    String trimmed=response.trim();
    if (response.equals(s6))
      System.out.println("\nCorrect!");
    } else {  ...  }