2017-09-24 90 views
1

如何收集輸入的不同類型(字符串,浮點和整數)的4個變量對像這樣的一行:(字符串,浮動,浮動,INT)?的Java:收集與多個變量類型輸入在一行

例如:

"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(); 
    } 
} 

我需要使用for循環嗎?

+0

'keyboard.nextLine();'是你的問題。其餘的一次收集一行,只要你按回車,你可以收集他們在一行。 – Oleg

+0

我該如何做到這一點,我不需要點擊輸入,他們都只是在同一行? – Nate123

+0

你的程序如何知道你輸入了輸入而沒有輸入? – Oleg

回答

2

變化

employeeID = keyboard.nextLine(); 

employeeID = keyboard.next(); 

人們現在可以用插圖中或使用每次輸入空格輸入輸入。

您可能還必須將println語句更改爲打印語句。當多個物品收集時,println有時會拋棄Scanner類。

+0

謝謝!我修好了,它工作:) – Nate123

1
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()); 
     } 
    } 
} 
+0

哇!這看起來很酷!謝謝! – Nate123