2016-03-22 19 views
1

Dies ist die ursprüngliche Aufforderung:separiert Liste von ganzen Zahlen

schreibt Programm, das eine durch Komma getrennte Zeichenfolge von ganzen Zahlen wird (zB „4,8,16,32, ...“) von dem Benutzer in der Befehlszeile und wandelt dann den String in eine ArrayList von Ganzzahlen um (mit der Wrapperklasse), wobei jedes Element eine der ganzen Zahlen enthält. Verwenden Sie schließlich eine for-Schleife, um die Integer in einer separaten Zeile an die Befehlszeile auszugeben.

import java.util.Scanner; 
import java.util.ArrayList; 

public class Parser { 


    public static void main(String[] args) { 

     Scanner scnr = new Scanner(System.in); 

     ArrayList<String> myInts = new ArrayList<String>(); 
     String integers = ""; 

     System.out.print("Enter a list of delimited integers: "); 
     integers = scnr.nextLine(); 

     for (int i = 0; i < myInts.size(); i++) { 
      integers = myInts.get(i); 
      myInts.add(integers); 
      System.out.println(myInts); 
     } 
    } 
} 

Ich war in der Lage, es zu bekommen, wo sie die Liste der ganzen Zahlen begrenzt akzeptiert, aber ich bin auf der Umwandlung Stück davon stecken und die for-Schleife, und zwar eine separate Leitung jede Nummer zu drucken.

+0

Verwenden 'Integer.parseInt()' konvertieren von 'String' zu' Integer' ... – brso05

+1

Verwenden Sie die Split-Methode für eine Zeichenfolge und durchlaufen Sie die Ergebnisse, die die analysierten Integer (Integer.parseInt (value)) in Ihre ArrayList of Integers eingefügt haben. – ManoDestra

+0

Sie drucken die gesamte Liste. Sie sollten über jedes Element iterieren und jedes in einer Schleife drucken. –

Antwort

2

Zuerst können Sie die Eingabezeichenfolge in String[] konvertieren, indem Sie die split Methode verwenden: input.split(","). Dies wird Ihnen ein Array geben, wo die Elemente Strings sind, die durch "," getrennt wurden.

Und dann einen String in einen Integer Wrapper zu konvertieren, können Sie verwenden:

  1. Integer i = Integer.valueOf(str);
  2. Integer i = Integer.parseInt(str)
0

myInts leer ist, sind Ihre Daten in ganzen Zahlen.
Ich schlage vor, dass Sie über die fonction suchen: split (von String)

3

Der einfachste Weg, um diese Zeichenfolge zu konvertieren wäre es zu spalten das Komma nach und gelten Integer.valueOf zu jedem Element:

List<Integer> converted = Arrays.stream(integers.split(",")) 
           .map(Integer::valueOf) 
           .collect(Collectors.toList()); 

Drucken sie, vorausgesetzt, Sie zu verwenden, um eine for Schleife haben , würde über sie nur bedeuten, Looping und Drucken jedes einzeln:

for (Integer i : converted) { 
    System.out.println(i); 
} 

Wenn Sie absolut keine for Schleife verwenden müssen, könnte dies auch wesentlich eleganter mit Bächen durchgeführt werden, auch ohne in eine temporäre Liste zu speichern:

Arrays.stream(integers.split(",")) 
     .map(Integer::valueOf) 
     .forEach(System.out::println); 
Verwandte Themen