java交换机案例需要两个调用才能实际工作
我在while循环中使用了一个开关,在许多情况下可以对一组数字进行基本的统计分析。我们正致力于将简单的值数组替换为用户可以添加到的多个数据集的双精度数组映射。我已经添加了一个“添加”案例,它可以成功添加到地图。。。在每次其他运行时。因此,当我将“添加数据集1 2 3 4 5”写入扫描仪时,不会发生任何事情,但如果我再次将其写入扫描仪,它将成功添加。这里是重要的代码,让我知道你能做什么。getOption()是一个方法,它通过扫描仪获取字符串,将其拆分为单个单词,然后将这些单词输入字符串数组。输入格式为“case keyForMap VALUES FORMAP”。我知道我们不应该假设用户将遵循这种格式,但我们让它在这个任务中滑动。getValues()获取数组中的数字,将其解析为double,然后将其添加到新的double数组中,并返回该数组
HashMap<String,double[]> dataMap = new HashMap();
...
public void driver(){
Stats s = new Stats(data);
String[] options = getOption();
while (!"quit".equals(options[0])){
switch (options[0]) {
case "add": if (getOption().length < 2){
break;
}
else{
dataMap.put(options[1], getValues(options));
}
break;
case "summary": //Arrays.toString(dataMap.entrySet().toArray());
System.out.println(dataMap.containsKey("dsn"));
break;
case "quit": return;
default: System.out.println(options[0] + " is not a legal option");
}
options = getOption();
}
}
# 1 楼答案
将
if (getOption().length < 2)
替换为if (options.length < 2)
。在那里调用方法意味着您将获取一个全新的输入行,而不是使用已有的输入行,然后在只检查其长度后将其丢弃