Java ArrayList,如何一次列出一个?

时间:2017-03-22 13:44:57

标签: java arraylist

所以我只是在做一个快速异常程序,我只是要求用户输入10个名称,名称将被转移到.txt文件中。 我有一个arrayList,所以我现在遇到的问题是,每次用户输入一个名字时,律师也会在它之前输出所有以前的名字。有人可以告诉我如何一次打印一个ArrayList吗?

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

目前,这就是我的输出结果:

    /*      
* 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);
    }

}

1 个答案:

答案 0 :(得分:1)

只需打印最后输入的值而不是整个列表:

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

}