java 扫描仪 class 面临多项输入问题

facing issue in java with scanner class while taking multiple input

我正在尝试从不同 classes 的用户那里获取多个输入,如果我只使用 String 类型,我的代码可以正常工作,但是当我使用任何其他 class 时,比如 int, flot 或任何其他它忽略下一个字符串输入为什么会发生这种情况任何人都可以帮助我。

Scanner obj = new Scanner(System.in);
String a,b,c;
int x,y,z;
System.out.print("Enter any string: ");
a = obj.nextLine();
System.out.print("enter any int: ");
x = obj.nextInt();                                                                                             
System.out.print("Enter any thing: ");    //after getting input for int it ignore next string 
b = obj.nextLine();                       input
System.out.print("Enter any thing: ");
c = obj.nextLine();

调用 obj.nextInt() 后,用户在输入缓冲区中输入数字后按下的 Return 仍然存在 EOL,因为 nextInt() 仅读取数字人物。您必须通过调用 obj.nextLine() 并忽略结果来跳过这些字符。然后你可以继续并要求用户提供额外的输入。

这给了你预期的结果:

Scanner obj = new Scanner(System.in);
String a,b,c;
int x,y,z;
System.out.print("Enter any string: ");
a = obj.nextLine();
System.out.print("enter any int: ");
x = obj.nextInt();
obj.nextLine();
System.out.print("Enter any thing: ");    //after getting input for int it ignore next string
b = obj.nextLine();
System.out.print("Enter any thing: ");
c = obj.nextLine();

System.out.println("1: " + b);
System.out.println("2: " + c);

样本运行:

Enter any string: anystring
enter any int: 12345
Enter any thing: anything
Enter any thing: more anything
1: anything
2: more anything