您好,我在运行此代码时遇到错误
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或组中。感谢
答案 0 :(得分:5)
您的地图包含" "
作为其中一个键。代码试图将" "
解释为数字,但它不是有效数字。
您需要确定空间的来源,然后确定最佳行动方案(解决导致该问题的问题,忽略它等)。
答案 1 :(得分:2)
异常是正确的:
Integer.valueOf(“”)将为您提供java.lang.NumberFormatException
。 TreeMap的初始化(填充)为您提供了空格的值。
尝试:
System.out.println("Key is: '" + getCharacter + "');
在Integer.valueOf(getCharacter);
之前如果有“一个白色字符键”,则在人口中寻找错误