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

标签 java arrays arraylist

我试图向用户展示文本,然后用户键入一个逗号分隔的全名列表(名字和姓氏),然后按 Enter,每个全名都放入一个 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 + ", ");
}

会发生什么是“组名:”显示,我输入任何我想要的名称,然后按 Enter,然后“名称:”显示,我输入“a aa,b bb,c cc”并按 Enter,然后什么也没有发生。我期望发生的是arraylist的第一个元素设置为“aa”,第二个元素设置为“b bb”,第三个元素设置为“c cc”,因此它将打印“a aa,b bb,c cc , "(我知道这看起来很糟糕,但这并不重要,我现在只是使用它来确保正确填充 ArrayList,但事实并非如此)。但是扫描仪似乎认为仍然有输入,所以它卡在了 while 循环中。我一直在尝试很多不同的方法来解决这个问题,一些非常复杂的使用 boolean 值试图在按下回车后打破 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();

关于java - 我无法弄清楚如何在逗号分隔的列表中获取用户输入并将其放入 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28598872/

相关文章:

java - 设置背景颜色/图像

java - 连接两个 Java 字符串

java - 将子数组复制到初始化数组的Java方法

java - 从排序列表中获取间隔的最快方法?

java - 增强的 for 循环似乎同时遍历所有元素。但它应该是还是我的代码错了?

java - JMS 选择器如何随队列深度扩展?

java - 关于在@String 上添加

python - 从python数组中选择行

javascript - Node.js 异步循环对象数组

android - 将 ArrayList 添加到 Android 中的 HashMap 后如何清除 ArrayList?