【发布时间】:2015-04-22 02:38:07
【问题描述】:
我正在尝试制作一个简单的密码保护程序。这个想法是,当您输入正确的密码时,将出现“授予访问权限”消息。如果密码输入错误,则会出现“拒绝访问”消息。这是在 If/Else 语句上运行的。我的程序的问题是,即使我在控制台中输入了正确的密码,else 语句仍在运行。
尽管没有错误,(除了资源泄漏)会发生这种情况。这是我的代码:
import java.util.Scanner;
public class PasswordProtected {
public static void main (String args[]){
Scanner Password = new Scanner (System.in);
String mainpassword, userInput;
mainpassword = ("bob");
System.out.println("Please enter the password to continue.");
userInput = Password.nextLine();
System.out.println("Verifying Password");
if (userInput == mainpassword){
System.out.println("Access Granted");
}else{
System.out.println("Access Denied");
}
}
}
这是我的控制台在密码正确时产生的结果:
Please enter the password to continue.
bob
Verifying Password
Access Denied
这是我的密码错误时控制台产生的结果:
Please enter the password to continue.
erdtfyhujnikyguj
Verifying Password
Access Denied
谁能向我解释为什么会这样?我的代码错了吗?有人可以帮我解决它吗?
【问题讨论】:
-
至于重复标记,由于我不知道“.equals”,因此您发送给我的问题将没有用。
-
不用担心,将问题作为重复项关闭并不意味着您没有进行研究。关键是,您的问题确实归结为该问题,因此它既是您问题的答案,也对未来的访问者更有用。这不是个人的事,只是家务事。
-
@Jake,我不确定你是否考虑过。由于您显然在比较 Java 中的字符串时遇到问题,我会想一个题为“如何比较 Java 中的字符串?”的问题。将是一个相当安全的选择:-) 在任何情况下,作为重复的关闭并不是您问题的 价值的负面指示, 只是它之前被问过和回答过。
标签: java