Java 读取字符串列表中的名称
我想打印arrayList中的姓名列表:Java 读取字符串列表中的名称,java,arraylist,Java,Arraylist,我想打印arrayList中的姓名列表: public class arrReader { static Scanner input = new Scanner(System.in); static ArrayList<String> arr = new ArrayList<String>(); public static void main(String[] args) { System.out.println("Please enter your names
public class arrReader {
static Scanner input = new Scanner(System.in);
static ArrayList<String> arr = new ArrayList<String>();
public static void main(String[] args) {
System.out.println("Please enter your names: ");
String names = input.next();
while(names.length()>0) {
arr.add(names);
names = input.nextLine();
}
PrintArry();
}
public static void PrintArry() {
System.out.println("------------------------------------");
for (String i : arr) {
System.out.println(i);
}
}
}
公共类读取器{
静态扫描仪输入=新扫描仪(System.in);
静态ArrayList arr=新ArrayList();
公共静态void main(字符串[]args){
System.out.println(“请输入您的姓名:”);
字符串名称=input.next();
while(names.length()>0){
arr.add(姓名);
name=input.nextLine();
}
printary();
}
公共静态void PrintArry(){
System.out.println(“-----------------------------------------”;
用于(字符串i:arr){
系统输出打印LN(i);
}
}
}
结果是:
请输入您的姓名:
苹果香蕉和平
苹果 香蕉和平 如何在一行中显示名称? 还有,为什么我必须输入两次才能得到结果? 谢谢 你能试试吗:
System.out.print(i);
而不是:
System.out.println(i);
println方法打印i和afstand新行以不在最后一行之后添加“,”
if (arr.size() > 0) {
System.out.print(arr.get(0));
for (int i = 1; i < arr.size(); i++) {
System.out.print(", " + arr.get(i);
}
}
if(arr.size()>0){
系统输出打印(arr.get(0));
对于(int i=1;i
或者如果您使用JAVA 8,您可以尝试以下方法:
public static void PrintArry() {
System.out.println("------------------------------------");
Arrays.stream(arr).forEach(System.out::print);
}
您的问题是由以下事实引起的:
next()
只使用一个令牌,因此对于像Apple Banana Peace[enter/line separatpr]
这样的数据,它将只使用Apple
。之后,nextLine()
将读取字符串的剩余部分,直到行分隔符为止(此处“Banana Peace”作为下一个值)。但由于该字符串的字符数超过0个,因此循环将要求您输入另一个字符串,并且在输入空行之前不会停止。如果您希望将该数据读取为一个包含Apple Banana Peace
的字符串,以便可以将其作为一行中的一个值打印,则需要nextLine()
方法。