Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扫描仪对象跳到第二个扫描仪对象_Java - Fatal编程技术网

Java 扫描仪对象跳到第二个扫描仪对象

Java 扫描仪对象跳到第二个扫描仪对象,java,Java,因此,我正在做一个项目,将值放入scanner对象并检索它们。我的第一个输入有问题。用户被要求输入一个ID,然后应该被要求输入姓氏。问题是,当我运行第一个问题时,它会显示它,但跳过第一个扫描仪输入,跳转到第二个问题,输入会恢复正常。那么这里发生了什么?我该如何解决这个问题 //Prompt user for each value System.out.println("Enter employee Id number:"); Str

因此,我正在做一个项目,将值放入scanner对象并检索它们。我的第一个输入有问题。用户被要求输入一个ID,然后应该被要求输入姓氏。问题是,当我运行第一个问题时,它会显示它,但跳过第一个扫描仪输入,跳转到第二个问题,输入会恢复正常。那么这里发生了什么?我该如何解决这个问题

//Prompt user for each value
                System.out.println("Enter employee Id number:");
                String inputId = scanner.nextLine();
                System.out.println("Enter employees last name:");
                String inputLastName = scanner.nextLine();
                System.out.println("Enter employees first name:");
                String inputFirstName = scanner.nextLine();
                System.out.println("Enter employees salary:");
                String inputSalary = scanner.nextLine();        
                Double inSalary = Double.parseDouble(inputSalary);

我和你有同样的问题,我将.nextLine()改为.next() 这就是我解决问题的方法

试试这个

System.out.println("Enter employee Id number:");
           String inputId = scanner.next();
            System.out.println("Enter employees last name:");
            String inputLastName = scanner.next();
            System.out.println("Enter employees first name:");
            String inputFirstName = scanner.next();
            System.out.println("Enter employees salary:");
            String inputSalary = scanner.next();        
            Double inSalary = Double.parseDouble(inputSalary);

对于第一种方法,使用scanner.next()并查看发生了什么。我想这可能是问题所在。在第一次输入之前或之后?更改第一次输入。我认为现在的情况是,在你输入任何东西之前,它正在读取一个空白行。因此,将其更改为
String inputId=scanner.next()
正常,但它跳过了第二个,转到了第三个,因此我对所有对象都做了与第一个相同的操作,现在它似乎正常工作。然而,我想知道为什么会发生这种情况,以及使用scanner.next()是否会出现进一步的问题;不,应该可以。
nextLine()
所做的是从该行中提取每个字符/数字。但是使用
next()
只需要第一个单词。除非你有一个词里面有空格,否则不会有什么不同。