我试图让用户输入用户输入字母然后取决于字母' IF'声明选择要显示的字段。
如果我输入' p'和' P'或者' F'或者' f'我的' for'声明仍然不理解我的意见,并把我扔给其他人。言。
但为什么不呢?
Scanner scanner = new Scanner(System.in);
System.out.print("Employee's Last Name: ");
inputName = scanner.next();
System.out.print("Employment Status (F or P): ");
inputStatus = scanner.next();
if (inputStatus == "F" || inputStatus == "f")
{
// some code
}
else if(inputStatus == "P" || inputStatus == "p")
{
// some code
}
else
{
System.out.println("I don't understand...");
}
答案 0 :(得分:4)
始终使用equals进行字符串比较。 &安培; equalsIgnoreCase用于案例独立比较
此外,如果其中一个参数是固定字符串,则应使用它来比较
F
,以避免不必要的空值检查。
"F".equalsIgnoreCase(inputStatus)
您的代码应如下所示。
System.out.print("Employee's Last Name: ");
String inputName = null;
String inputStatus = null;
if (scanner.hasNext())
inputName = scanner.next();
System.out.print("Employment Status (F or P): ");
if (scanner.hasNext())
inputStatus = scanner.next();
if ("F".equalsIgnoreCase(inputStatus)) {
// some code
} else if ("P".equalsIgnoreCase(inputStatus)) {
// some code
} else {
System.out.println("I don't understand...");
}
答案 1 :(得分:3)
您应该使用equalsIgnoreCase()方法。
if (inputStatus.equalsIgnoreCase("f"))
{
// some code
System.out.println(inputStatus);
}
答案 2 :(得分:1)
您应该使用字符串equals()
方法。
答案 3 :(得分:1)
您无法使用==
运算符比较字符串。此运算符比较引用。改为使用equals()
方法:
if ("F".equals(inputStatus) || "f".equals(inputStatus))
答案 4 :(得分:1)
你无法比较Strings
if“==”,这基本上会比较两个值的内存地址,这两个值永远不会匹配。
你应该使用像...这样的东西。
if (inputStatus.equalsIgnoreCase("f"))
{
// Do something...
}
代替