我使用数字有类似的代码,它完美地工作。然而,这继续强调其他字,我不知道为什么。我正在玩java试图理解一些原则。
我想编程根据输入回复两个语句中的一个。此外,在if (input1 == "Hello");
的位置,我也希望if (input1 == "Hello" || "hello");
接受小写,但也显示错误。
为了清楚起见,如果我删除了else子句,我的程序就会运行并打印两个语句!
import java.util.Scanner;
public class Input
{
public static void main(String[] args)
{
System.out.println("Hello there!");
Scanner Scan = new Scanner (System.in);
String input1 = Scan.nextLine();
Scan.close();
if (input1 == "Hello");
{
System.out.println("How are you?");
}
else
System.out.println("How rude, you didn't even say Hello!");
break;
}
}
}
答案 0 :(得分:5)
绝不要使用==
来比较字符串。
改为使用.equals
。
if (input1.equals("Hello"))
或
if (input1.equalsIgnoreCase("Hello"))
删除
末尾的分号if (input1 == "Hello");
编辑: - 正如您对OR的评论中所见。
你可以试试这个: -
if(input1.equalsIgnoreCase("hello") || input1.equalsIgnoreCase("hey") || input1.equalsIgnoreCase("hi"))
答案 1 :(得分:2)
删除if语句末尾的;
。并使用.equals()
来比较字符串。
分号导致编译错误,而==
一旦运行就会导致逻辑错误。
答案 2 :(得分:1)
你可能不想在分行上加分号
if (input1 == "Hello");
您可能实际上并不想使用==
进行比较(请阅读有关比较字符串的链接问题)。
第三,为什么break
条款中有else
个陈述?
答案 3 :(得分:1)
您正在寻找equalsIgnoreCase()
。这比较两个字符串而不考虑大小写。
答案 4 :(得分:0)
在;
语句条件之后删除if
,并在{
之后添加else
。此外,最好在比较对象时使用equals(Object)
方法,因为使用==
时可能会出现意外结果。