A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bjasd 中级黑马   /  2015-6-23 22:01  /  686 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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


10 个回复

倒序浏览
请问.Scanner是哪个视频里面讲的 啊??毕向东的java视频里面肯定没有!
回复 使用道具 举报
刚学到  不过还不理解。。
回复 使用道具 举报
我不是很理解你的意思??能不能详细点??
回复 使用道具 举报
我也想知道是哪个视频里讲的scanner
回复 使用道具 举报
micro_hx 发表于 2015-6-23 22:34
我不是很理解你的意思??能不能详细点??

不是要输入用户名和密码吗?如果用户名是中文的,那么它的判断你是输入错的。
例如:你设置为“林青霞”“admin”,就算你输入“林青霞”“admin”,也会判断你输入错误。
如果设置为“lqx”“admin”,运行后,就是登录成功。
回复 使用道具 举报
我的运行没错啊
回复 使用道具 举报
bjasd 中级黑马 2015-6-23 22:58:34
8#

如果用户名是中文的话,可以运行成功吗???
回复 使用道具 举报
bjasd 发表于 2015-6-23 22:58
如果用户名是中文的话,可以运行成功吗???

可以啊,中文也是字符串啊
回复 使用道具 举报
bjasd 中级黑马 2015-6-23 23:02:44
10#
朱智琳 发表于 2015-6-23 22:59
可以啊,中文也是字符串啊

好吧,但我的代码好像是不行啊。。。
回复 使用道具 举报
看看你的字符编码问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马