我有以下代码:
game.log.fine("HERE" + bestMove.get("score"));
Integer bestScore = Integer.getInteger(bestMove.get("score"));
game.log.fine("THERE" + bestScore);
作为输出,我有:
FINE: HERE50
Dec 9, 2010 11:34:17 AM game.Agent getCloud
FINE: THEREnull
Dec 9, 2010 11:34:17 AM game.Agent getCloud
可能我不得不补充说,bestMove是HashMap<String,String>
。
问题是bestMove.get("score")
给出了一个字符串值(等于"50")。但是如果尝试转换为整数,我会得到null
。
有人知道这里的问题是什么吗?
发布于 2010-12-09 18:46:40
你应该使用
Integer.parseInt
在你的代码中,
Integer.getInteger
将确定具有指定名称的系统属性的整数值。
正确的代码应该是:
Integer bestScore = Integer.parseInt(bestMove.get("score"), 10);
作为第二个参数的10
是基数。总是使用它,这样你的数字就不会被模棱两可地解析了。
https://stackoverflow.com/questions/4397328
复制相似问题