Java If语句跳到else

Java If语句跳到else,java,if-statement,Java,If Statement,我是来自Python的Java新手,请原谅我的迟钝。我试图做一个简单的if语句,但它不起作用:(。它忽略if语句,直接执行else 我尝试在if语句中使用.contains和.equalsIgnoreCase package me.johnminton; 导入java.util.Scanner; 公共班机{ 公共静态void main(字符串[]args){ 扫描仪用户输入=新扫描仪(System.in); 弦类动物; System.out.println(“请输入您的物种:”); 物种\动物=

我是来自Python的Java新手,请原谅我的迟钝。我试图做一个简单的if语句,但它不起作用:(。它忽略if语句,直接执行else

我尝试在if语句中使用.contains和.equalsIgnoreCase

package me.johnminton;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪用户输入=新扫描仪(System.in);
弦类动物;
System.out.println(“请输入您的物种:”);
物种\动物=用户\输入。下一步();
if(动物种类(“直立人”)){
System.out.println(“随机输入语句”);
}
其他的
{
System.out.println(“好”);
}
}
}

如果我在第一次输入中输入直立人,我希望它能输出“随机输入语句”。但是,它会直接转到else并输出“OK”。

问题是,如果没有返回键,扫描仪就无法完成。请尝试“user\u input.nextLine()”而不是“user\u input.next()”

next()
方法仅从扫描器中提取一个单词,不过您可以通过为扫描器指定分隔符来更改该行为

在您的例子中,如果键入
erucutussian
或类似的内容,您将得到所需的结果,但如果键入
Home-Erectus
,则不会


我怀疑你是想用
nextLine()
而不是
next()
,它将获取整行文本。

如果语句看起来正常,请尝试打印变量
species\u animal
,以查看它分配给什么。顺便说一句,您的代码对我有效。实际上,您的扫描仪似乎有问题。请尝试使用
input.nextLine()
取而代之。代码,至少是您向我们展示的部分……有效。您没有向我们展示的代码是什么?如果您希望与直立人完全匹配,请尝试使用equals或equalsignorecase string方法,而不是包含。