Scanner输入不存在

题目是:

img

错误在:无法理解Scanner我并没有关闭,这里有两个测试结果集,不知道是不是程序默认关闭了Scanner但是重新输入这里new了一个Scanner,于是困扰了我好久,上网寻求答案!

img


import java.util.Scanner;


public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for(int i=0;i<3;i++){
            System.out.println("请输入登录名称和登录密码用&连接:");
            String nameAndPassWord =sc.next();
            // 2、判断用户输入的登录名称和密码与正确的内容是否相等。
            boolean islogin = login(nameAndPassWord);
            if (islogin) {
                System.out.println("登录成功!");
                break;
            } else {
                System.out.println("用户名或者密码错误了!");
            }
        }

    }


    // 需要在此方法,对参数进行字符串操作
    // 参数 nameAndPassWord 中间使用'&'符号进行连接,例如:zhangsan&123456
    // 判断账号和密码是否正确后返回 true 或者 false
    public static boolean login(String nameAndPassWord){
        // 1、正确登录名和密码
        String okName = "itheima";
        String okPassword = "123456";
        /***************作答区域***************/
        int c=0;
        for(int i=0;i<nameAndPassWord.length();i++){
            if(nameAndPassWord.charAt(i)=='&'){
                c=i;
                break;
            }
        }
        String name=nameAndPassWord.substring(0,c);
        String password=nameAndPassWord.substring(c+1);
        if(name.equals(okName)&&password.equals(okPassword)){
            return true;
        }else {
            return false;
        }
        /***************作答区域***************/
    }

}

试试看把next修改为nextLine,也许缓冲区有多余的换行符

代码本地运行了,看着没有啥问题