首页 > 解决方案 > java.lang.NumberFormatException:对于输入字符串:“09xxxxxxxxx”

问题描述

我正在尝试将服务器 API 数据库中的数据作为 SMS 发送。数据库中的电话号码用于登录应用程序。登录后,短信将自动发送到手机号码。

登录类:

                   String phoneNum = et_mobile.getText().toString();
                    int mobile = Integer.parseInt(phoneNum.trim());

                    SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(mobile);
                    String spamMessage = "Srno: " + resObj.getSrNo() +
                            "Date: "  + resObj.getDate() +
                            "In: " + resObj.getTimeIn() +
                            "Out: " + resObj.getTimeOut() +
                            "JO#: " + resObj.getJoNo() +
                            "CoPer: " + resObj.getContactPerson() +
                            "BR: " + resObj.getDesignation() +
                            "CNum: " + resObj.getContactNo();
                    ArrayList<String> sms;
                    sms = smsManager.divideMessage(spamMessage);
                    smsManager.sendMultipartTextMessage(phoneNum, null,sms,null, null);

我已经在清单中使用了这些权限:

    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <uses-permission android:name="android.permission.SEND_SMS"/>

当我登录时,我的 logcat 显示:

 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.android.ras, PID: 18982
    java.lang.NumberFormatException: For input string: "09xxxxxxxxx"

而且我没有收到任何短信。

标签: javaandroidsmsmanager

解决方案


你得到的是这里NumberFormatException描述的。正如它所说

抛出以指示应用程序已尝试将字符串转换为其中一种数字类型,但该字符串没有适当的格式。

你的字符串是09xxxxxxxxx; xxxxxxxxx无法解析为异常Integer

您可以在 java 编译器或在线编译器上尝试以下简单代码,看看我在说什么。

public class HelloWorld{

     public static void main(String []args){
        int mobile = Integer.parseInt("09*******");
     }
}

推荐阅读