开发者社区> 问答> 正文

Scanner录入出现错误

信息类:

public class UserInf {
    final private String userName = new String("JiHe");
    final private String passWord = new String("JiHe123");

    public UserInf() {
        super();
        // TODO Auto-generated constructor stub
        check();
    }

    public void check() {
        System.out.println("Please input userName:");
        Scanner sc = new Scanner(System.in);
        if (this.userName.equals(sc.nextLine())) {
            if (this.passWord.equals(sc.nextLine())) {
                System.out.println("Please input passWord:");
                System.out.println("Check Pass !");
            }
        }
    }
}

测试类:

 public class TestUser {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        UserInf user = new UserInf();
    }

}

问题:console只输出一句,无法输出第二句:
` Please input userName:
JiHe`

展开
收起
蛮大人123 2016-05-31 14:58:41 2298 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    public void check() {
        System.out.println("Please input userName:");
        Scanner sc = new Scanner(System.in);
        if (this.userName.equals(sc.nextLine())) {
                System.out.println("Please input passWord:");
            if (this.passWord.equals(sc.nextLine())) {
                System.out.println("Check Pass !");
            }
        }
    }

    注意提示sc.nextLine()的意思是要扫描当前行,并返回输入信息。你的写法是需要连续两次输入完成后,才会执行下面的checkpass!. 调整为上面的顺序 会每次都提示。要点是,在每次sc.nextLine()之前都要提示输入信息。

    2019-07-17 19:21:58
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载