2017-03-22 8 views
0

Also mache ich nur eine schnelle Ausnahme-Programm, wo ich nur den Benutzer bitten, 10 Namen eingeben und die Namen werden in eine TXT-Datei übertragen werden. Ich habe uns eine ArrayList, so das Problem, das ich jetzt habe, ist, jedes Mal, wenn der Benutzer einen Namen eingibt, der Ratgeber alle vorherigen Namen auch vor ihm ausgeben wird. Kann mir bitte jemand zeigen, wie man die ArrayList nacheinander druckt?Java ArrayList, wie listet man einzeln auf?

Ex. Please enter name 1: Wei 
Please enter name 2: ming 
Please enter name 3: guo 

Im Moment ist dies, wie wie meine Ausgabe sieht:

/*  
* Please enter name 1:[wei] 
Please enter name 2:[wei, ming] 
Please enter name 3:[wei, ming, guo] 
Please enter name 4:[wei, ming, guo, wei] 
Please enter name 5:[wei, ming, guo, wei, ming] 
Please enter name 6:[wei, ming, guo, wei, ming, dfuo] 
Please enter name 7:[wei, ming, guo, wei, ming, dfuo, wer] 
Please enter name 8:[wei, ming, guo, wei, ming, dfuo, wer, sdf] 
Please enter name 9:[wei, ming, guo, wei, ming, dfuo, wer, sdf, sdf] 
Please enter name 10:[wei, ming, guo, wei, ming, dfuo, wer, sdf, sdf, sdf] 
*/ 

import java.io.FileNotFoundException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class NamesDemo { 

    public static void main(String[] args) { 
     String NamesDemo = "names.txt"; 
     PrintWriter outputStream = null; 
     try { 
      outputStream = new PrintWriter(NamesDemo); 
     } catch (FileNotFoundException e) { 
      System.out.println("Error opening the file " + NamesDemo); 
      System.exit(0); 
     } 

     System.out.println("Enter 10 names: "); 
     Scanner kb = new Scanner(System.in); 
     ArrayList<String> name = new ArrayList<String>(); 

     for (int i = 0; i < 10; i++) { 
      name.add(kb.next()); 
      outputStream.println("Please enter name " + (i + 1) + ":" + name); 

     } 
     outputStream.close(); 
     System.out.println("Thse names were sent to file: " + NamesDemo); 
    } 

} 

Antwort

1

einfach den zuletzt eingegebenen Wert statt der gesamten Liste drucken:

for (int i =0; i<10; i++){ 
    String newValue = kb.next(); 
    name.add(newValue); 
    outputStream.println("Please enter name " + (i+1) + ":" + newValue); 

} 
+1

Oder wenn Sie dies nicht tun Möchten Sie eine neue Variable einführen, können Sie den aktuellen Index verwenden und den Wert aus Ihrer 'List' übernehmen. So etwas wie 'outputStream.println ("Bitte geben Sie den Namen ein" + (i + 1) + ":" + name.get (i)); ' – gonzo

+0

ohhhhhh, vielen Dank! * macht sich Notizen *: D – Hamster

Verwandte Themen