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