如何获取Hashmap Key并将其转换为其他数据类型

时间:2012-05-16 19:17:20

标签: java hashmap key

您好,我在运行此代码时遇到错误

Map<String, Integer> map = new TreeMap<String, Integer>();//Already populated
public ArrayList<Map<String, Integer>> storage(){
    for (String getCharacter : map.keySet()){
        String convertBinGrp;
        **Integer binGroups = Integer.valueOf(getCharacter);**

        if ( binGroups>=0 && binGroups<= 32){
            convertBinGrp = Long.toString(binGroups);
            binInsideList.get(convertBinGrp);
            Integer getVal = getCharacter.getValue();
            binInsideList.put(convertBinGrp, getVal);
        }
    }

错误消息:线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“”
指示的错误是整数binGroups = Integer。 valueof(getCharacter)施法。 我已经尝试过使用long和double来确保它的大小更大,因为我理解它从Map获取的String值。但还有其他方法可以解决这个问题吗?我想将String转换为数值,以便我可以将它放入正确的bin或组中。感谢

2 个答案:

答案 0 :(得分:5)

您的地图包含" "作为其中一个键。代码试图将" "解释为数字,但它不是有效数字。

您需要确定空间的来源,然后确定最佳行动方案(解决导致该问题的问题,忽略它等)。

答案 1 :(得分:2)

异常是正确的: Integer.valueOf(“”)将为您提供java.lang.NumberFormatException。 TreeMap的初始化(填充)为您提供了空格的值。

尝试:

System.out.println("Key is: '" + getCharacter + "');
Integer.valueOf(getCharacter);之前

如果有“一个白色字符键”,则在人口中寻找错误