我有一个函数,用于在sqlite
中保存Android数据,但我必须将String
数据转换为Integer
。
每当String
为null
时,我希望将其保存为0
以下是我的代码,在值为null
时会失败
int block_id = Integer.parseInt(jsonarray.getJSONObject(i).getString("block_id"));
block_id
以上的内容被转换为Integer
类型。
这是我决定要做的事情,但仍无法将字符串值转换为null
时的0
。
int block_id = Converttoint(jsonarray.getJSONObject(i).getString("block_id"));
然后函数convertToInt
public static Integer convertToInt(String str) {
int n=0;
if(str != null) {
n = Integer.parseInt(str);
}
return n;
}
我该如何修改它,以使其正常工作?
null
,而是空的。 - Tunakiint
而不是Integer
,并将你的方法名更改为convertToInt
(或者parseIntOrNull
)。 - Jon Skeetnull
之后,我还会检查字符串是否仅包含数字:str.matches("[0-9]+");
。或者你可以捕获解析异常。 - CloudPotato