【发布时间】:2015-02-19 04:57:32
【问题描述】:
我正在尝试向用户显示文本,然后用户键入一个逗号分隔的全名列表(名字和姓氏),然后按 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 循环中。我一直在尝试很多不同的方法来解决这个问题,其中一些使用布尔值非常复杂,试图在按下 enter 后打破 while 循环。我已经尝试了几个小时,但一切都失败了。非常感谢任何帮助。
【问题讨论】: