将String转换为int。如果String为null,则将int设置为0

【字号: 日期:2024-03-02浏览:19作者:雯心
如何解决将String转换为int。如果String为null,则将int设置为0?

不用编写自己的函数,而是使用try-catch的内部构造。您的问题是,jsonarrayorjsonarray.getJSONObject(i)或值本身是a,null并且您在null引用上调用方法。请尝试以下操作:

int block_id = 0;//this set’s the block_id to 0 as a default.try { block_id = Integer.parseInt(jsonarray.getJSONObject(i).getString('block_id')); //this will set block_id to the String value, but if it’s not convertable, will leave it 0.} catch (Exception e) {};

在Java中,异常用于标记意外情况。例如,将非数字解析为数字String(NumberFormatException)或在null引用上调用方法(NullPointerException)。您可以通过多种方式捕获它们。

try{ //some code} catch (NumberFormatException e1) { e.printstacktrace() //very important - handles the Exception but prints the @R_563_4037@ion!} catch (NullPointerException e2) { e.printstacktrace();}

或利用事实,它们都可以扩展Exception:

try { //somecode} catch (Exception e) { e.printstacktrace;};

或从Java 7开始:

try { //somecode} catch (NullPointerException | NumberFormatException e) { e.printstacktrace;};

注意

我相信您会仔细阅读答案,请记住,在StackOverflow上,我们需要最小,完整和可验证的示例,其中包括您的异常的StackTrace。就您而言,它可能始于以下内容:

Exception in thread 'main' java.lang.NullPointerException

然后,调试会容易得多。没有它,这只是猜测。

根据公认的答案

接受的答案很好,并且可以使用,只要用key:存储的值block_id是数字即可。如果不是数字,您的应用程序将崩溃。

代替:

JSONObject jObj = jsonarray.getJSONObject(i);int block_id = jObj.has('block_id') ? jObj.getInt('block_id') : 0;

一个应该使用:

int block_id;try{ JSONObject jObj = jsonarray.getJSONObject(i); block_id = jObj.has('block_id') ? jObj.getInt('block_id') : 0;} catch (JSONException | NullPointerException e) { e.printstacktrace();}解决方法

我有一个将Android数据保存在其中的函数,sqlite但必须将String数据转换为Integer。

只要String是null我想保存为0

以下是我的代码,只要值是 null

int block_id = Integer.parseInt(jsonarray.getJSONObject(i).getString('block_id'));

将block_id上述转化为Integer。

这是我决定要执行的操作,但是仍然无法将字符串值转换为0每当它的null。

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;}

我应该如何对其进行更改以使其起作用?

相关文章: