1

嗨,我在运行此代码时出错

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:对于输入字符串:“”
指示的错误是Integer binGroups = Integer 。valueof(getCharacter)铸造。我已经尝试使用 long 和 double 来确保它的大小更大,因为我理解它是从 Map 获取的 String 值。但是还有其他方法可以解决这个问题吗?我想将字符串转换为数值,以便可以将其放入适当的箱或组中。谢谢

4

2 回答 2

5

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

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

于 2012-05-16T19:18:40.027 回答
2

例外是正确的: Integer.valueOf(" ") 会给你java.lang.NumberFormatException。TreeMap 的初始化(填充)为您提供了空白值。

尝试:

System.out.println("Key is: '" + getCharacter + "');

Integer.valueOf(getCharacter); 如果有“一个白字符键”,则在种群中寻找错误

于 2012-05-16T19:29:54.340 回答