Java 将用户输入添加到不带nextLine的arraylist
我试图将用户输入添加到arraylist中,直到有人键入“退出”。问题在于扫描仪上的.nextLine()方法。它将跳过一行,因此最终的ArrayList将只包含每一个其他输入 以下是我到目前为止的情况:Java 将用户输入添加到不带nextLine的arraylist,java,input,arraylist,Java,Input,Arraylist,我试图将用户输入添加到arraylist中,直到有人键入“退出”。问题在于扫描仪上的.nextLine()方法。它将跳过一行,因此最终的ArrayList将只包含每一个其他输入 以下是我到目前为止的情况: public class Question { static Scanner userInput = new Scanner(System.in); static List<String> strings = new ArrayList<String>(); pub
public class Question {
static Scanner userInput = new Scanner(System.in);
static List<String> strings = new ArrayList<String>();
public static void main (String[] args) {
System.out.println("Please enter your strings:");
while(!userInput.nextLine().equals("quit")) {
String v = userInput.nextLine();
strings.add(v);
}
displayList();
}
private static void displayList() {
System.out.println(strings);
}
}
公开课问题{
静态扫描仪用户输入=新扫描仪(System.in);
静态列表字符串=新的ArrayList();
公共静态void main(字符串[]args){
System.out.println(“请输入字符串:”);
而(!userInput.nextLine().equals(“quit”)){
String v=userInput.nextLine();
字符串。添加(v);
}
显示列表();
}
私有静态void displayList(){
System.out.println(字符串);
}
}
我尝试过使用userInput.toString()而不是nextLine(),但仍然不起作用。是否有办法使每个用户输入都添加到ArrayList中
如果我输入一二三四退出,显示的列表将是[二,四]
(发生的另一件恼人的事情是,如果我键入奇数个字符串,我需要键入两次“quit”,它才能真正退出。你需要在while循环中检查“v”,而不是调用nextLine。因此你必须
String v;
do{
v = userInput.nextLine();
if(v.equals("quit"))
break;
else
strings.add(v);
} while(true);
或
解决方法之一是:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Question {
static Scanner userInput = new Scanner(System.in);
static List<String> strings = new ArrayList<String>();
public static void main (String[] args) {
System.out.println("Please enter your strings:");
String v;
while (true){
v = userInput.next();
if(v.equalsIgnoreCase("quit"))
break;
else
strings.add(v);
}
displayList();
}
private static void displayList() {
System.out.println(strings);
}
}
import java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner;
公开课问题{
静态扫描仪用户输入=新扫描仪(System.in);
静态列表字符串=新的ArrayList();
公共静态void main(字符串[]args){
System.out.println(“请输入字符串:”);
字符串v;
while(true){
v=userInput.next();
如果(v.equalsIgnoreCase(“退出”))
打破
其他的
字符串。添加(v);
}
显示列表();
}
私有静态void displayList(){
System.out.println(字符串);
}
}
问题在于,您调用userInput.nextLine()两次,一次在while的头中,一次在while的正文中。您需要使用:
String line = "";
while(!line.equals("quit")) {
line = userInput.nextLine();
strings.add(line);
}
String line = "";
while(!line.equals("quit")) {
line = userInput.nextLine();
strings.add(line);
}