我试图向用户呈现文本,然后用户输入一个以逗号分隔的全名列表(名字和姓氏),然后按 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 键,然后什么都没发生。我期望发生的情况是数组列表的第一个元素设置为“a 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/