繁体   English   中英

扫描仪类没有正确接受输入

[英]Scanner class do not take input properly

我正在尝试使用扫描仪类将用户输入到值 firstname、middlename、lastname、age for 中,但下面的程序只需要 firstname、middlename、lastname 而不是 age 的值。

public void inputEmployeeDetails(){
     Scanner  scanner = new Scanner(System.in);
                      System.out.println("Enter the firstname ");
                      firstname= scanner.nextLine();
                     System.out.println("Enter the middlename ");
                      middlename= scanner.nextLine();
                      System.out.println("Enter the lastname");
                      lastname= scanner.nextLine();
                     System.out.println("Enter the age"); 
                     age= scanner.nextInt();
     }               

我需要通过用户提示一个接一个地获取所有值。 根据输入的数据,我正在显示员工详细信息。 有人可以让我知道我缺少什么。

我还想从用户那里获取多个输入。 请让我知道我是否在下面

 System.out.println("Do you like to fetch more records press "Yes" or "No");
       String input=scanner.nextLine();
       if(input="Yes")
       inputEmployeeDetails();

age 变量采用您按下的下一个 ENTER 键,因此不会存储任何内容。 由于 ENTER 的数据类型与年龄变量的数据类型不同,因此您的代码收到 InputMismatchException。 您需要检查下一个值是否为 int 然后将其分配给变量。 请参考以下一次:

import java.util.Scanner;
public class Test{
     public static void main(String []args){
     String firstname, middlename, lastname;
     int age;
     Scanner  scanner = new Scanner(System.in);
     System.out.println("Enter the firstname ");
     firstname= scanner.nextLine();
     System.out.println("Enter the middlename ");
     middlename= scanner.nextLine();
     System.out.println("Enter the lastname");
     lastname= scanner.nextLine();
     System.out.println("Enter the age"); 
     if(scanner.hasNextInt()) {
        age= scanner.nextInt();
     }else
        age = 0;
     System.out.println(firstname + " " + middlename + " " + lastname + " " + age); 
    }
}

检查这个程序:

String firstname,middlename,lastname,choice;
        int age, flag;
        Scanner  scanner = new Scanner(System.in);
        do{
             choice=null;

         System.out.println("Enter the firstname ");
         firstname= scanner.nextLine();
        System.out.println("Enter the middlename ");
         middlename= scanner.nextLine();
         System.out.println("Enter the lastname");
         lastname= scanner.nextLine();
        System.out.println("Enter the age");

        flag=0;age=0;

        while(flag==0){
        try{
        age= scanner.nextInt();
        flag=1;
        }
        catch(Exception e){
            scanner.nextLine();
            System.out.println("Wrong entry, please enter digits only:");
        }
        }

        System.out.println(firstname+" "+middlename+" "+lastname+" "+age);

        System.out.println("Do you like to fetch more records press Yes or No");
        scanner.nextLine();   

                   choice=scanner.nextLine();
        }while(choice.contains("Y")||choice.contains("y"));                    

        System.out.println("Program terminated.");

        scanner.close();

        System.exit(0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM