【发布时间】:2015-09-03 09:10:15
【问题描述】:
问题需要为每个属性输入不同的值。例如:
颜色 黑色 白色
水冷热介质
风强弱
我制作了 ArrayList of ArrayList of String 来存储 no 之类的东西。每个属性的值不固定。用户输入黑白,在打新行时,程序必须开始获取 NEXT 属性(冷热介质)的值。没有。属性的数量已经指定。我在这里遵循了一些(几乎相关的)答案并编写了以下代码:
ArrayList<ArrayList<String>> attributes = new ArrayList<ArrayList<String>>();
String input;
for(i=0; i<num_of_Attributes ;i++)
{ System.out.print(" Enter attribute no." + i+1 + " : ");
ArrayList<String> list = new ArrayList<String>();
while(! input.equals("\n"))
{
list.add(input);
input = sc.nextLine();
}
attributes.add(list);
}
程序打印“输入属性 1:”,但即使在换行之后也不会打印“输入属性 2:”。它进入无限循环。我怎样才能实现程序需要做的事情? sc 是我的 Scanner 对象。
【问题讨论】:
-
所以你没有同时获得所有输入,程序必须在第一行之后等待接收更多输入,对吗?
-
首先我的程序输出“输入属性1:”我输入“黑白”,但是在按下输入“输入属性2:永远不会出现。(无论我给出多少单词/换行符。)
-
我可以使用 StringTokeniser 来做到这一点。这目前符合我的目的。我无法通过比较输入或使用 isEmpty() 等来弄清楚如何做到这一点。