java - 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"
而且我没有收到任何短信。
解决方案
你得到的是这里NumberFormatException
描述的。正如它所说
抛出以指示应用程序已尝试将字符串转换为其中一种数字类型,但该字符串没有适当的格式。
你的字符串是09xxxxxxxxx
; xxxxxxxxx
无法解析为异常Integer
。
您可以在 java 编译器或在线编译器上尝试以下简单代码,看看我在说什么。
public class HelloWorld{
public static void main(String []args){
int mobile = Integer.parseInt("09*******");
}
}
推荐阅读
- node.js - Nodejs Skaffold 本地开发到产品流程
- r - 对于桶形失真图像,如何执行图像扭曲或从一个坐标系到另一个坐标系的转换?
- javascript - 如何使用数据表上传 csv 文件并将其存储到我的服务器中的文件夹中?
- javascript - iPad 不使用 javascript 更新页面(使用 Django 后端)
- python-3.x - 如何按时间顺序单击页面上的多个“+”按钮并使用python从中提取数据?
- flutter - 如何使用 Flutter navigator 为两个屏幕进行滑动过渡?
- mysql - SequelizeEagerLoadingError:角色未与用户关联
- html - 如何更改选择多个元素中活动项目的字体颜色?
- xml - 如何有条件地实例化 xml 配置中的 bean?
- javascript - PayPal JavaScript SDK 客户端不发布到服务器