Possible Duplicate:
Java String.equals versus ==
我正在尝试用 Java 制作一个简单的用户/密码系统。我的代码是:
Scanner sc = new Scanner (System.in);
System.out.println("Enter Username :");
String username = sc.nextLine();
System.out.println("Enter Password :");
String password = sc.nextLine();
if (username == "a" && password == "b"){
System.out.print("ok");
}
或者
if (username == 'a' && password == 'b')
我想用用户 a 进行简单登录并传递 b 但它不起作用。
要屏蔽密码,请选择 java.io.Console.readPassword()扫描仪类:
String username = null;
String password = null;
Console console = System.console();
System.out.print( "Username: " );
username = console.readLine();
System.out.print( "Password: " );
password = new String( console.readPassword());
System.out.println( "Username = " + username );
System.out.println( "Password = " + password );
if (username.equals( "a" ) && password.equals( "b" )) {
System.out.print( "ok" );
}
另一个加强安全性的建议:密码变量应该是要被垃圾化的语言环境。
console.readPassword()返回的是一个char数组,可以不分配String就一个个char比较,虽然写的代码多了也更安全(因为我提供的示例代码使用的是String)。