字符串到整数解析中的数字格式异常

时间:2013-01-04 11:50:46

标签: java android parsing type-conversion

我知道这个问题在这里问了很多次。实际上我也提到了其中一些,但没有能够得到解决方案所以决定在这里发布

我只是尝试将字符串值解析为整数,此时它会给出Null指针异常。 当我试图打印字符串的值时我得到5是正确的,但是当我在解析后打印它们的值时它是0.遵循我试过的代码

String xmldata = "";
int sql_proID;
xmldata = os.toString();
sql_proID = Integer.parseInt(xmldata);

我也尝试过声明sql_proID,但它给出了同样的错误。 以下是异常消息

01-04 17:06:14.166: W/System.err(398): java.lang.NumberFormatException: unable to parse  '
01-04 17:06:14.166: W/System.err(398): 5' as integer
01-04 17:06:14.166: W/System.err(398):  atjava.lang.Integer.parse(Integer.java:383)
01-04 17:06:14.176: W/System.err(398):  at java.lang.Integer.parseInt(Integer.java:372)
01-04 17:06:14.176: W/System.err(398):  at java.lang.Integer.parseInt(Integer.java:332)
01-04 17:06:14.176: W/System.err(398):  at com.example.anti_dui_app.Synchronization.onCreate(Synchronization.java:57)
01-04 17:06:14.176: W/System.err(398):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-04 17:06:14.176: W/System.err(398):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-04 17:06:14.185: W/System.err(398):  at android.os.Looper.loop(Looper.java:123)
01-04 17:06:14.185: W/System.err(398):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-04 17:06:14.185: W/System.err(398):  at java.lang.reflect.Method.invokeNative(Native Method)
01-04 17:06:14.185: W/System.err(398):  at java.lang.reflect.Method.invoke(Method.java:507)
01-04 17:06:14.185: W/System.err(398):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-04 17:06:14.185: W/System.err(398):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-04 17:06:14.185: W/System.err(398):  at dalvik.system.NativeStart.main(Native Method)

我出错的地方请告诉我......谢谢

4 个答案:

答案 0 :(得分:6)

看起来那里可能有换行符。

您是否尝试修剪字符串以删除空格?

例如:

sql_proID =的Integer.parseInt(xmldata.trim());

答案 1 :(得分:5)

看起来你得到五个单引号,这就是Nul​​lPointerException的原因。

还请检查logcat中是否存在新行。

答案 2 :(得分:4)

这是NumberFormatException而不是NullPointerException。它是由格式错误的数字字符串引起的,似乎是"\n5",而不仅仅是"5"

答案 3 :(得分:0)

您的代码不清晰,最新标记为:

String **xmldata**="";
int sql_proID;
xmldata = os.toString();
sql_proID=Integer.parseInt(xmldata);

您要解析 xmldata ,其值为'5'。 解析器是不可理解的。 因此,尝试将价值仅为5。