Java输入失败
可能重复:Java输入失败,java,string,java.util.scanner,Java,String,Java.util.scanner,可能重复: 我做错了什么?编译并运行程序后,我键入输入,无论输入是什么,程序总是将其视为不正确的输入,并说我错了,如下所示: import java.util.Scanner; public class mena3 { public static void main(String[] args) { Scanner user_input = new Scanner(System.in); String Capitol; System
我做错了什么?编译并运行程序后,我键入输入,无论输入是什么,程序总是将其视为不正确的输入,并说我错了,如下所示:
import java.util.Scanner;
public class mena3 {
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
String Capitol;
System.out.print("Enter the capitol of Morocco: ");
Capitol = user_input.next();
if(Capitol == "Rabat") {
System.out.println("Good Job!");
}
else {
System.out.println("That is incorrect");
}
}
}
在我加入拉巴特之后,它说这是不正确的。如果我加上l,它说那是不正确的。为什么我不能赢?不要使用
=
比较字符串。请改用equals(…)
或equalsIgnoreCase(…)
方法。了解==检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是这里的问题所在。所以不是
if (fu == "bar") {
// do something
}
做
或者
投票结束这个问题,因为这个问题在这个网站上只被询问和回答了无数次。java中最常见的错误之一。字符串需要
.equals()
而不是=
错:
if (str == "foo") {
}
对:
if ("foo".equals(str)) { // done in this order to avoid NPE
}
您的代码是完美的,只是您的比较方法是错误的。所有其他语言都将
==
视为比较运算符。但对于Java来说,这有点棘手。在Java中,这里将==作为对象的比较运算符,而不是字符串变量
所以,要比较两个字符串,有一个名为`.equals()
的方法,它来自String类本身
因此,您需要相应地更改代码
import java.util.Scanner;
public class mena3
{
public static void main(String[] args)
{
Scanner user_input = new Scanner(System.in);
String Capitol;
System.out.print("Enter the capitol of Morocco: ");
Capitol = user_input.next();
// if(Capitol == "Rabat") // your previous code
if(Capitol .equals ( "Rabat") ) // new updated comparison code
{
System.out.println("Good Job!");
}
else
{
System.out.println("That is incorrect");
}
}
}
你的打字速度太快了。他可能已经预先写好了答案,因为这个问题被问到的频率太高了。是的-这个问题的核心可能是这个网站上最常见的问题(我昨天才自己回答了一个)。我会把答案放在手边,这样我就可以复制粘贴它,这样我就可以“赢得”回答比赛:)-1实际上你错了<代码>“a”==“a”始终为真!“慢”输入,但还是+1上一票。你有点慢。。。其他答案在你回答之前7分钟就已经出现了,他们说的都是同样的事情。各位,很抱歉,这是另一个被问得太频繁的问题,谢谢你们的耐心和回答。
if ("foo".equals(str)) { // done in this order to avoid NPE
}
import java.util.Scanner;
public class mena3
{
public static void main(String[] args)
{
Scanner user_input = new Scanner(System.in);
String Capitol;
System.out.print("Enter the capitol of Morocco: ");
Capitol = user_input.next();
// if(Capitol == "Rabat") // your previous code
if(Capitol .equals ( "Rabat") ) // new updated comparison code
{
System.out.println("Good Job!");
}
else
{
System.out.println("That is incorrect");
}
}
}