首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将'‘解析为整数[ForceClose]

无法将'‘解析为整数[ForceClose]
EN

Stack Overflow用户
提问于 2011-09-12 08:16:28
回答 1查看 2.1K关注 0票数 0

我使用这段代码从文件中检索数据,然后进行一些处理,最后在EditTextPreference中设置结果。

代码语言:javascript
复制
 try {
                //open the specified input file and create a reader
                FileInputStream fIn = context.openFileInput(fileDir+fileName);
                InputStreamReader ipsr = new InputStreamReader(fIn);
                BufferedReader b = new BufferedReader(ipsr);


                String ligne;

                while ((ligne = b.readLine()) != null) {
                    String prix = ligne.split(" ")[2];
                    //prix = prix.substring(0, prix.length() - 2);
                    Log.d("PRIX",prix);
                    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
                    String prix_total = settings.getString("prix_total", "0");
                        int a= Integer.valueOf(prix_total);
                     int c= Integer.valueOf(prix);
                 a= c + a;
                  String z=String.valueOf(a);
                  Log.d("A",z);

                  EditTextPreference myEditTextPreference = (EditTextPreference) findPreference("prix_total");
                  myEditTextPreference.setText(z); 
}


            //done, cleanup and return
            fIn.close();
            ipsr.close();

        } 
        catch (Exception e) 
        {
            Log.e("blah", "Exception", e);
        }

但是,我遇到了这个问题(Logcat):

代码语言:javascript
复制
09-12 01:09:10.941: ERROR/blah(10866): Exception
09-12 01:09:10.941: ERROR/blah(10866): java.lang.NumberFormatException: unable to parse '' as integer
09-12 01:09:10.941: ERROR/blah(10866):     at java.lang.Integer.parseInt(Integer.java:362)
09-12 01:09:10.941: ERROR/blah(10866):     at java.lang.Integer.parseInt(Integer.java:332)
09-12 01:09:10.941: ERROR/blah(10866):     at java.lang.Integer.valueOf(Integer.java:506)
09-12 01:09:10.941: ERROR/blah(10866):     at carburant.android.com.Settings.onCreate(Settings.java:46)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
09-12 01:09:10.941: ERROR/blah(10866):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-12 01:09:10.941: ERROR/blah(10866):     at android.os.Looper.loop(Looper.java:130)
09-12 01:09:10.941: ERROR/blah(10866):     at android.app.ActivityThread.main(ActivityThread.java:3687)
09-12 01:09:10.941: ERROR/blah(10866):     at java.lang.reflect.Method.invokeNative(Native Method)
09-12 01:09:10.941: ERROR/blah(10866):     at java.lang.reflect.Method.invoke(Method.java:507)
09-12 01:09:10.941: ERROR/blah(10866):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
09-12 01:09:10.941: ERROR/blah(10866):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
09-12 01:09:10.941: ERROR/blah(10866):     at dalvik.system.NativeStart.main(Native Method)

可能的问题是什么?我调试了"prix“,发现它输出的是'':。谢谢你的帮助。PS:数据的形式如下:

代码语言:javascript
复制
data = date + ": " + y + "L/100KM "+ " " + value1 + "dt "+ value2 + "KM\n";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-12 08:26:04

valueOf和parseInt不能处理空字符串或nulls。添加一些检查,比如使用TextUtils.IsEmpty(string)来验证您没有传递空数据。

我还看到你用一个try块包围了它,考虑添加一个catch (NumberFormatException ex)块,如果它不应该是空的,就记录错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7382227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档