所以我只是在做一个快速异常程序,我只是要求用户输入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);
}
}
答案 0 :(得分:1)
只需打印最后输入的值而不是整个列表:
for (int i =0; i<10; i++){
String newValue = kb.next();
name.add(newValue);
outputStream.println("Please enter name " + (i+1) + ":" + newValue);
}