我怎样才能让这个hashmap工作?

时间:2016-10-08 17:30:28

标签: java

我是学生,我正在尝试练习哈希图。我可以在循环和if语句中输入罗马数字转换成精确的小数。我想进入MDCLXVI。

a  aaa 12
b  bbb 2
c  ccc 10
a  aaa 23
a  abb 13
b  bcc 23
b  bbb 5
c  cbb 73

我的问题是:如何输入多个密钥才能获得所需的小数?

2 个答案:

答案 0 :(得分:0)

您无法拨打一张地图来获取答案。这根本不是地图的目的。

你应该做的是思考你是如何学习阅读罗马数字的。以简单示例XIV为例,您可以在地图中查找含义为10,1和5的内容。因为10> 1,你将10添加到结果(结果= 10)。然后,如1< 5,从5中减去1并将其添加到结果中(结果= 14)。

这应该足以让您将其转换为您需要的代码。

答案 1 :(得分:0)

如果键存在于hashmap中,则data.get将返回一个值,否则返回null。当你为“MDCLXVI”调用numeral.get(inputstr)时,实际的调用是数字.get(“MDCLXVI”),但你的哈希中不存在“MDCLXVI”,所以它返回null,这就是你的哈希不工作的原因。

不需要直接数字.get(inputstr),而是需要解析inputstr,然后需要将每个解析的罗马字符传递给.get并计算。请看:Converting Roman Numerals To Decimal