格式化字符串

时间:2018-10-08 14:07:28

标签: android

我正在获取NumberFormatException:对于输入字符串:“ 4045989016914”,尝试将字符串设置为以下格式

String.format("%013d", Integer.valueOf(itemMODEL.getCodiceArticolo()))

itemMODEL.getCodiceArticolo是一个字符串,它将是条形码,如果它比13短,我将加0,所以我使用的代码应该是正确的,但是我不明白为什么我得到了这个错误。 / p>

  

2018-10-08 16:01:37.420 12670-12670 / it.gabtamagnini.realco   E / AndroidRuntime:致命异常:main       流程:it.gabtamagnini.realco,PID:12670       java.lang.NumberFormatException:对于输入字符串:“ 4045989016914”           在java.lang.Integer.parseInt(Integer.java:524)           在java.lang.Integer.valueOf(Integer.java:611)           在it.gabtamagnini.realco.InventarioActivity.Tracciato(InventarioActivity.java:471)           在it.gabtamagnini.realco.InventarioActivity $ 9.onClick(InventarioActivity.java:429)           在android.view.View.performClick(View.java:5637)           在android.view.View $ PerformClick.run(View.java:22433)           在android.os.Handler.handleCallback(Handler.java:751)           在android.os.Handler.dispatchMessage(Handler.java:95)           在android.os.Looper.loop(Looper.java:154)           在android.app.ActivityThread.main(ActivityThread.java:6130)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

2 个答案:

答案 0 :(得分:1)

您的条形码太大,无法容纳4字节的整数。最高整数的正范围是2^31 - 1 = 2147483647。您应该改用Long

String.format("%013d", Long.valueOf(itemMODEL.getCodiceArticolo()))

答案 1 :(得分:1)

作为克里斯托弗回答的替代方法,您甚至不需要将其转换为数字。

您应该能够做到:

String code = itemMODEL.getCodiceArticolo());

仅将数字转换回字符串中没有任何意义。您也不需要这种格式。