这是今天学到的一个面试题,但是有一个小问题,如果输入的用户名是中文的,例如:"林青霞",运行后,就是输入错误,不能成功,这是不是Scanner的缺陷,问题,或者说漏洞呢????求指教。。。
package Login;
import java.util.Scanner;
/*模拟用户登录,有三次机会。
模拟登录,从控制台输入用户名密码,如果用户名密码正确的话,提示登陆成功,否则提示登陆失败。登陆过程中只能尝试3次。
思路:A:已经存在有用户名和密码。
B:键盘录入用户名和密码。
C:进行比较:匹配;不匹配;
D:有三次机会,用for循环。*/
public class Login {
public static void main(String[] args) {
//已存在的用户名和密码。
String username = "lqx";
String password = "admin";
for (int i = 0; i < 3; i++) {
//键盘录入用户名和密码。
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名: ");
String name = sc.nextLine();
System.out.println("请输入密码: ");
String pw = sc.nextLine();
//进行比较
if (username.equals(name) && password.equals(pw) ) {
//if (name.equals(username) && pw.equals(password) ) {
System.out.println("恭喜你,登录成功");
break;
} else {
if ((2-i) == 0){
System.out.println("账号被锁定,请与管理员联系");
}else{
System.out.println("用户名或密码错误,你还有"+(2-i)+"次机会");
}
}
}
}
}
|
|