我需要Java扫描程序代码方面的帮助



所以我需要这段代码的帮助。这个代码是一体的,所以忽略空格,但我需要在代码底部写另一个扫描仪,如果我添加
String feeling = in.nextLine();在最后不起作用。我需要一个it,这样我就可以写下我的感受,这样我就能让jarvis回答,但这个字符串不起作用,java忽略了这个字符串,直接进入下一部分。它从中间开始。

Scanner in = new Scanner(System.in);
System.out.println("Type User Name:");
String userName = in.nextLine();
System.out.println("PASSWORD:");
int passcodeFromUser=in.nextInt();
int passcode = 2015;
if (passcodeFromUser == passcode) {
    System.out.println("Welcome Mr." + userName + "!");
    Random random = new Random(userName.hashCode());
    System.out.println("Mr." + userName + ", You are now recognized and you are now able to command me.");
    System.out.println("I was created by John Choi");
    System.out.println("JARVIS stands for Just A Rather Very Intelligent System");
    System.out.println("How are you today Mr." + userName + "?");
}

因此,如果我在后面添加此代码,它将不起作用。它忽略并显示Oh. Mr is feeling.

String feeling = in.nextLine();
System.out.println("Oh. Mr." + userName + "is feeling" + feeling + ".")

这是因为nextInt调用实际上并不解析换行符。

引用API,Scanner#nextInt:

将输入的下一个标记扫描为内部

(此处关注代币部分(

这里有一种(但不是唯一的(解决方法:

Integer passcodeFromUser = null;
try {
    passcodeFromUser= Integer.parseInt(in.nextLine());
}
catch (NumberFormatException nfe) {
    // TODO handle non-numeric password
}

而不是CCD_ 5。

您还可以循环Integer的解析,以便在捕获NumberFormatException时打印错误消息,并且在获得有效的数字密码之前不要中断循环。

您可以使用字符:

in.nextLine();
String feeling = in.nextLine();

因此,只要在要添加的代码之前放入.nextLine((,就可以很容易地解决问题。

最新更新