Java:在一行上收集具有多个变量类型的输入

Java:在一行上收集具有多个变量类型的输入,java,Java,如何在一行中收集4个不同类型(字符串、浮点和整数)的输入变量,如下所示:(字符串、浮点、浮点、int) 例如: "joey" 17.4 39.9 6 这就是我的代码现在的样子。它可以工作,但一次只收集一行变量 import java.util.Scanner; public class EmployeePay{ public static void main(String[] args) { Scanner keyboard = new Scanner(System.in

如何在一行中收集4个不同类型(字符串、浮点和整数)的输入变量,如下所示:(字符串、浮点、浮点、int)

例如:

"joey" 17.4 39.9 6
这就是我的代码现在的样子。它可以工作,但一次只收集一行变量

import java.util.Scanner;

public class EmployeePay{

    public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    String employeeID = "";
    double hrsWorked;
    double wageRate;
    int deductions;

    System.out.println("Hello Employee! Please input your employee ID, hours worked per week, hourly rate, and deductions: ");
    employeeID = keyboard.nextLine();
    hrsWorked = keyboard.nextFloat();
    wageRate = keyboard.nextFloat();
    deductions = keyboard.nextInt();
    }
}
我是否需要为循环使用

更改

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println( " enter i/p ");
    while (scan.hasNext()) { // This will loop your i/p.
        if (scan.hasNextInt()) { // if i/p int 
            System.out.println(" Int " + scan.nextInt());
        } else if (scan.hasNextFloat()) { // if i/p float
            System.out.println(" Float " + scan.nextFloat());
        } 
        else { // if i/p String
            System.out.println( " String " + scan.next());
        }
    }
}
employeeID = keyboard.nextLine();

人们现在可以输入中间有空格的输入,或者每次使用enter键


您可能还必须将println语句更改为print语句。当有多个项目要收集时,println有时会抛出Scanner类

keyboard.nextLine()是您的问题。其余的一次只收集一行,如果你按enter键,你可以在一行上收集它们。我如何才能做到不需要单击enter键,而所有输入都在同一行上?你的程序如何知道你没有按enter键就完成了输入?我不知道。。。有没有办法让程序知道每个空格在输入中分隔了一个不同的变量?在某种程度上,它如何知道您输入的是
6
,而不是
636
employeeID = keyboard.next();