开发者社区 问答 正文

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 2374 分享 版权
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
    赞同 展开评论
问答地址: