2015-08-08 49 views
2

我做老codeforces問題的實踐,我在Python經常重複的模式是:Java:將掃描器輸入分配給多個變量?

(m, n, k) = [int(i) for i in raw_input().split()] 

快速指派m, n, k因爲投入,如

4 2 7 

在codeforces的是常見的第一條輸入線。有什麼辦法可以在Java中快速執行此類事情(具有多個變量m, n, k)(最好是1-2班)?

任何幫助讚賞(或鏈接到某個地方回答問題)。謝謝!

+1

不行,你必須寫這三個獨立的語句。 –

回答

1

我能想到的最快捷的方式就是像這樣:

System.out.println("Enter values:"); 
    Scanner scan = new Scanner(System.in); 
    int i = scan.nextInt(); 
    int j = scan.nextInt(); 
    int k = scan.nextInt(); 
    System.out.print(i + " " + j + " " + k); 

輸入:1 2 3

輸出:1 2 3

1

這可能不是正是你想要什麼,國際海事組織,如果你把輸入存儲在一個數組中,它是一個接近的替代品。你所說的沒有三個「獨立的」變量,但是你要求的是一個1 - 2的班輪。

public static void main(String[] args) throws Exception { 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter 3 values separated by spaces: "); 
    int[] mnk = Arrays.stream(input.nextLine().split(" ")) 
      .mapToInt(a -> Integer.parseInt(a)).toArray(); 
    System.out.println(Arrays.toString(mnk)); 
} 

這樣的方法的另一個「缺點」是輸入是SO限制整數輸入和空格分隔。你無法獲得1 - 2班輪與錯誤檢查。

結果:

Enter 3 values separated by spaces: 4 2 7 
[4, 2, 7]