Android Integer.parseInt引发NumberFormatException?
我在应用程序中使用了日期选择器。我试图做的是在文本字段中获取已经设置的日期,并在Datepicker控件上显示该日期。但当我使用Android Integer.parseInt引发NumberFormatException?,android,datepicker,Android,Datepicker,我在应用程序中使用了日期选择器。我试图做的是在文本字段中获取已经设置的日期,并在Datepicker控件上显示该日期。但当我使用 Integer.parseInt(splittedDate[2]) //i.e the year column. 当我看到调试splittedDate时,它包含三个值,这三个值都很好。但在分析最后一个索引的年份列时抛出异常。我不明白为什么会这样。请帮我摆脱这一切。下面是Datepicker的CreateDialog方法的实现 @Override protecte
Integer.parseInt(splittedDate[2]) //i.e the year column.
当我看到调试splittedDate时,它包含三个值,这三个值都很好。但在分析最后一个索引的年份列时抛出异常。我不明白为什么会这样。请帮我摆脱这一切。下面是Datepicker的CreateDialog方法的实现
@Override
protected Dialog onCreateDialog(int id) {
if (id == DATE_DIALOG_ID) {
if (birthDate.getText().toString().equalsIgnoreCase(""))
return new DatePickerDialog(this, mDateSetListener, mYear,
mMonth, mDay);
else {
String[] splittedDate = birthDate.getText().toString().split("-");
try{
Log.i("Month String", splittedDate[0]);
mMonth = Integer.parseInt(splittedDate[0]);
Log.i("Day String", splittedDate[1]);
mDay = Integer.parseInt(splittedDate[1]);
Log.i("Year String", splittedDate[0]);
mYear = Integer.parseInt(splittedDate[2]);
}
catch(Exception e)
{
Log.e("Number Format Exception Message: ",e.getMessage());
}
return new DatePickerDialog(this, mDateSetListener, mYear,
mMonth, mDay);
}
return null;
}
以下是logCat信息:
09-05 16:21:54.722: E/AndroidRuntime(28596): FATAL EXCEPTION: main
09-05 16:21:54.722: E/AndroidRuntime(28596): java.lang.NumberFormatException: unable to parse '1970 ' as integer
09-05 16:21:54.722: E/AndroidRuntime(28596): at java.lang.Integer.parse(Integer.java:383)
09-05 16:21:54.722: E/AndroidRuntime(28596): at java.lang.Integer.parseInt(Integer.java:372)
09-05 16:21:54.722: E/AndroidRuntime(28596): at java.lang.Integer.parseInt(Integer.java:332)
09-05 16:21:54.722: E/AndroidRuntime(28596): at com.test.project.activity.DetailActivity.onCreateDialog(DetailActivity.java:332)
试试这个
Integer.parseInt(splittedDate[2].toString())
试试这个
Integer.parseInt(splittedDate[2].toString())
在
出生日期
字段中插入值的位置张贴代码。检查是否不应有任何空格
。应该只有数字。从例外情况来看,'1970'
似乎包含一个空格。仔细检查生日字段。在生日字段中插入值的地方张贴代码。检查是否不应有任何空格
。应该只有数字。从例外情况来看,'1970'
似乎包含一个空格。仔细检查birthDate字段。你能发布导致异常的字符串吗?你能上传stacktraceit在splittedDate数组中的基本第三个元素吗…其值为1970不知道它是否相关,但你注意到第三个打印是Log.i(“年份字符串”,splittedDate[0])代码>而不是Log.i(“年份字符串”,splittedDate[2])代码>?嗯,通常年份是多少?NumberFormatException
是一个非常自解释的概念,它意味着字符串不包含可解析的整数。字符串中的字符必须全部是十进制数字,但第一个字符可能是ASCII减号。您能发布导致异常的字符串吗?您能上传stacktraceit在splittedDate数组中的基本第三个元素吗…其值为1970不知道是否相关,但是您是否注意到第三个打印是Log.i(“年份字符串”,splittedDate[0])代码>而不是Log.i(“年份字符串”,splittedDate[2])代码>?嗯,通常年份是多少?NumberFormatException
是一个非常自解释的概念,它意味着字符串不包含可解析的整数。字符串中的字符必须全部是十进制数字,但第一个字符可能是ASCII减号。u由于“1970”中包含空格而导致错误,请删除它,然后分析itu getting error,因为“1970”中包含空格,请删除它,然后分析它。情况就是这样。我将.trim()添加到我的值中,效果很好。事实就是这样。我在我的值中添加了.trim(),效果很好。