隐姓埋名882 2023-06-01 22:48 采纳率: 0%
浏览 18

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;
        }
        /***************作答区域***************/
    }

}
  • 写回答

2条回答 默认 最新

  • threenewbee 2023-06-01 22:53
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 6月1日

悬赏问题

  • ¥20 有偿,学生成绩信息管理系统
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列