Integer.parseInt格式异常

时间:2014-08-13 18:53:09

标签: java numberformatexception parseint

我在使用Integer.parseInt函数将字符串传递给int时遇到问题。 您希望在DB中下载的webService所使用的字符串具有varchar(1)格式(不确定这是否重要)。

我的代码非常简单:

for (int i = 0; i <todo.size (); i ++) 
{
numT = Integer.parseInt (todo.get (i) .getRespT ()); 
numV = Integer.parseInt (todo.get (i) .getRespV ()); 
         ... 
} 

这就是它告诉我的logcat:

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{app.opofire/app.opofire.Soluciones}: java.lang.NumberFormatException: Invalid int: "1"
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$600(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:155)
at android.app.ActivityThread.main(ActivityThread.java:5454)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NumberFormatException: Invalid int: "1"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at java.lang.Integer.parseInt(Integer.java:332)
at app.opofire.Soluciones.corregirTest(Soluciones.java:157)
at app.opofire.Soluciones.onCreate(Soluciones.java:52)
at android.app.Activity.performCreate(Activity.java:5066)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
... 11 more

我试图用Log.i显示字符串的值,如果它已经空白了,我在论坛上看到了其他一些帖子,但它只显示我1个

非常感谢。

PD:我已将其用于调试:

Log.i("",""+todo.get(i).getRespV().length());

并显示长度为3

1 个答案:

答案 0 :(得分:0)

你的字符串可能有前导空格。在转换之前尝试修剪它:

for (int i = 0; i < todo.size(); i++)
{
    numT = Integer.parseInt (todo.get(i).getRespT().trim());
    numV = Integer.parseInt (todo.get(i).getRespV().trim());
         ...
}
相关问题