黑马程序员技术交流社区

标题: Scanner的问题??----一道面试题 [打印本页]

作者: bjasd    时间: 2015-6-23 22:01
标题: Scanner的问题??----一道面试题
这是今天学到的一个面试题,但是有一个小问题,如果输入的用户名是中文的,例如:"林青霞",运行后,就是输入错误,不能成功,这是不是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)+"次机会");
                                        }
                        }
                }
               
        }
}



作者: liu100chao    时间: 2015-6-23 22:19
请问.Scanner是哪个视频里面讲的 啊??毕向东的java视频里面肯定没有!
作者: 空城dream    时间: 2015-6-23 22:21
刚学到  不过还不理解。。
作者: micro_hx    时间: 2015-6-23 22:34
我不是很理解你的意思??能不能详细点??
作者: 安安安    时间: 2015-6-23 22:49
我也想知道是哪个视频里讲的scanner
作者: bjasd    时间: 2015-6-23 22:57
micro_hx 发表于 2015-6-23 22:34
我不是很理解你的意思??能不能详细点??

不是要输入用户名和密码吗?如果用户名是中文的,那么它的判断你是输入错的。
例如:你设置为“林青霞”“admin”,就算你输入“林青霞”“admin”,也会判断你输入错误。
如果设置为“lqx”“admin”,运行后,就是登录成功。
作者: 朱智琳    时间: 2015-6-23 22:57
我的运行没错啊
作者: bjasd    时间: 2015-6-23 22:58
朱智琳 发表于 2015-6-23 22:57
我的运行没错啊

如果用户名是中文的话,可以运行成功吗???
作者: 朱智琳    时间: 2015-6-23 22:59
bjasd 发表于 2015-6-23 22:58
如果用户名是中文的话,可以运行成功吗???

可以啊,中文也是字符串啊
作者: bjasd    时间: 2015-6-23 23:02
朱智琳 发表于 2015-6-23 22:59
可以啊,中文也是字符串啊

好吧,但我的代码好像是不行啊。。。
作者: micro_hx    时间: 2015-6-25 17:51
看看你的字符编码问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2