我无法弄清楚如何在逗号分隔列表中获取用户输入并将其放入 ArrayList

I cannot figure out how to take user input in a comma-separated list and place it into an ArrayList

我正在尝试向用户显示文本,然后用户键入以逗号分隔的全名列表(名字和姓氏),然后按回车键,每个全名都放入一个 ArrayList 中,然后是列表显示给用户。

所以我尝试了这个:

Scanner in = new Scanner(System.in);
ArrayList<String> members = new ArrayList<String>();
String[] groupName = new String[1];
System.out.print("Group Name: ");
groupName[0] = in.next().toLowerCase();
System.out.print("Names: ");
in.useDelimiter(",| ");
while (in.hasNext()){
    members.add(in.next().toLowerCase();
}
for (String m : members)
{
  System.out.println(m + ", ");
}

显示 "Group Name: ",我输入任何我想要的名称,然后按回车,然后 "Names: " 显示,我输入 "a aa, b bb, c cc" 并按回车,然后没有任何反应.我期望发生的是 arraylist 的第一个元素设置为 "a aa",第二个元素设置为 "b bb",第三个元素设置为 "c cc",因此它会打印 "a aa, b bb, c cc, "(我知道这看起来很糟糕,但这并不重要,我现在只是使用它来确保正确填充 ArrayList,但事实并非如此)。但是扫描仪似乎认为还有输入,所以它陷入了 while 循环。我一直在尝试很多不同的方法来解决这个问题,其中一些非常费解地使用布尔值试图在按下回车键后跳出 while 循环。我已经尝试了几个小时,但一切都失败了。如果有任何帮助,我将不胜感激。

你的问题是没有办法停止执行。

您能否使用 names = in.nextLine() 读取整行名称并使用 String.split(",") 拆分值?

Scanner in = new Scanner(System.in);
String[] groupName = new String[1];
System.out.print("Group Name: ");
groupName[0] = in.nextLine();
System.out.print("Names: ");
String names = in.nextLine();
String[] members = names.split(",");
System.out.println(Arrays.toString(members));
in.close();

有两个问题。首先,使用 in.nextLine() 而不是 in.next().toLowerCase()。然后使用获取的输入字符串的 split() 函数,然后划分数组中的字符串。请尝试以下代码。

    Scanner in = new Scanner(System.in);
    ArrayList<String> members = new ArrayList<String>();
    System.out.print("Group Name: ");
    String ab = in.nextLine();
    String[] splitString = ab.split(", ");
    for (String string : splitString)
    {
        //System.out.println("splited string: " + string);
        members.add(string);
    }
    System.out.println("Names: ");
    for (String m : members)
    { 
        System.out.println(m + ", ");
    }