2017-09-24 5 views
1

(string、float、float、int)のように、1行に異なる入力(文字列、浮動小数点および整数)の4種類の変数を収集するにはどうすればよいですか?例えばJava:1つの行に複数の変数型を持つ入力を収集する

"joey" 17.4 39.9 6 

これは私のコードは、今のように見えるものです。それは動作しますが、一度に1行だけ変数を収集します。

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();'が問題です。残りは一度に1行ずつ収集され、Enterキーを押すだけで1行に集めることができます。 – Oleg

+0

どうすれば入力をクリックする必要はなく、すべて同じ行にすることができますか? – Nate123

+0

入力を打つことなく入力を完了したことをプログラムがどのように知っていますか? – Oleg

答えて

2

変更

employeeID = keyboard.nextLine(); 

employeeID = keyboard.next(); 

人々は今、その間の各時刻を入力します使用してスペースを入力を入力することができます。

また、printlnステートメントをprintステートメントに変更する必要があります。 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

Whoa!これはクールに見えます!ありがとう! – Nate123

関連する問題