2017-07-25 81 views
0

我想在本系的單個代碼來獲得多個輸入.. 例如在C++中,我們可以有什麼樣子 -是否有可能在java中獲得多行輸入?

int a,b,c; 
cin>>a>>b>>c; 

是否有可能在java中也?

+0

我不敢相信你沒有使用類似「java同時賦值多個變量」的東西 - 前8個結果都是堆棧溢出! :) –

+3

可能重複[Java - 同時將兩個表達式分配給單個變量](https://stackoverflow.com/questions/3996593/java-assigning-two-expressions-to-a-single-variable-simultaneously) –

+0

可能重複的[如何在java中打印多個可變行](https://stackoverflow.com/questions/23584563/how-to-print-multiple-variable-lines-in-java) –

回答

0

如果我理解你的問題正確,您正在尋找這樣的事情:

a = b = c = 3; 

這像這樣被評價:

a = (b = (c = 3)) 

而且是相同的:

c = 3; 
b = c; 
a = b; 
2

您可以使用陣列來實現此目的,例如:

public static void main(String[] args) { 
     int[] values = new int[3]; 
     Scanner in = new Scanner(System.in); 
     for(int i = 0; i < values.length; i++) { 
      values[i] = in.nextInt(); 
     } 
     System.out.println(Arrays.toString(values)); 
    } 

UPDATE 2

在java中8的上述溶液可具有較短的版本:

Scanner in = new Scanner(System.in); 
Integer[] inputs = Stream.generate(in::nextInt).limit(3).toArray(Integer[]::new); 

UPDATE 1

還有另一種方法,這是更接近cin

public class ChainScanner { 
     private Scanner scanner; 

     public ChainScanner(Scanner scanner) { 
      this.scanner = scanner; 
     } 

     public ChainScanner readIntTo(Consumer<Integer> consumer) { 
      consumer.accept(scanner.nextInt()); 
      return this; 
     } 

     public ChainScanner readStringTo(Consumer<String> consumer) { 
      consumer.accept(scanner.next()); 
      return this; 
     } 
    } 

    public class Wrapper { 
     private int a; 
     private int b; 
     private String c; 

     public void setA(int a) { 
      this.a = a; 
     } /* ... */ 
    } 

    public static void main(String[] args) { 
     ChainScanner cs = new ChainScanner(new Scanner(System.in)); 
     Wrapper wrapper = new Wrapper(); 

     cs.readIntTo(wrapper::setA).readIntTo(wrapper::setB).readStringTo(wrapper::setC); 

     System.out.println(wrapper); 
    } 
+0

但如果想要整數之間的字符,例如在C++中 - int m,n; char c; c >> >> m >> c >> n; – hitain09

+0

@ hitain09一個解決方案就是使''''''類型的'values',從'in.next()'的輸入中讀取,然後進行轉換,例如'Integer.valueOf(values [1])' – Adrian

+0

謝謝你,先生......這是有益的! – hitain09

相關問題