2017-07-25 1 views
0

ich mehrere Eingänge in einem einzigen Code der Linie .. zum Beispiel in C++ zu bekommen versuchen, könnten wir es gerne haben -Ist es in Java möglich, mehrere Eingaben in einer einzigen Zeile zu erhalten?

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

ist es auch in Java möglich ??

+0

Ich kann nicht glauben, dass Sie nicht gegoogled haben etwas wie "Java zuweisen mehrere Variablen gleichzeitig" - die ersten 8 Ergebnisse sind alle Stapelüberlauf! :) –

+3

Mögliches Duplikat von [Java - zwei Ausdrücke gleichzeitig einer einzelnen Variablen zuweisen] (https://stackoverflow.com/questions/3996593/java-zuweisen-zwei-ausdrücke-in-eine-single-variable- simultan) –

+0

Mögliches Duplikat von [So drucken Sie mehrere variable Zeilen in Java] (https://stackoverflow.com/questions/23584563/how-to-print-multiple-variable-lines-in-java) –

Antwort

0

wenn ich Ihre Frage richtig verstanden sind Sie so etwas wie dies die Suche:

a = b = c = 3; 

Dies folgendermaßen ausgewertet wird:

a = (b = (c = 3)) 

Und entspricht dies:

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

Sie können ein Array für diesen Zweck verwenden, z. B .:

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

in Java 8 die obige Lösung kann eine kürzere Version haben:

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

UPDATE 1

Es gibt eine andere Art und Weise ist, die näher 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

aber wenn Zeichen zwischen Ganzzahlen, Beispiele in C++ - int m, n; Zeichen c; cin >> m >> c >> n; – hitain09

+0

@ hitain09 eine Lösung wäre, 'Werte' vom' String [] '-Typ zu machen, lese aus der Eingabe mit' in.next() 'und mache dann eine Umwandlung, zum Beispiel,' Integer.valueOf (Werte [1]) ' – Adrian

+0

Vielen Dank Sir .... es ist hilfreich !!!! – hitain09

Verwandte Themen