java - NumberFormatException:无法将 '' 解析为整数

标签 java android arrays parsing numberformatexception

我有一个日期字符串:

gridcell.setTag(theday + "-" + themonth + "-" + theyear + "|" + hijri_day + "-" + hijri_month + " ("+ hijri_monthno +") " + hijri_year);

..如果日期有事件,我会在单击按钮时将其传递给另一个类(class):

String date_month_year = (String) view.getTag();
if (isHoliday(d, m, y))
{
    Intent i = new Intent(view.getContext(), Events.class);
    i.putExtra("date_string", date_month_year);
    startActivity(i);
}

在 Events.class 中,我得到参数:

Intent intent = getIntent();
String date_string = intent.getStringExtra("date_string");

date_view = (TextView) this.findViewById(R.id.hijridate);
eventdetails = (TextView) this.findViewById(R.id.eventdetails);
date_view.setText(date_string);


String[] dateAr = date_string.split("-|\\||\\(|\\)|\\s+");
m = Integer.parseInt(dateAr[6]);
d = Integer.parseInt(dateAr[3]);
y = Integer.parseInt(dateAr[8]);

这是回历月份数组:

private String months[] = {"Muharram","Safar","Rabi-al Awwal","Rabi-al Thani","Jumada al-Ula","Jumada al-Thani","Rajab","Sha\'ban","Ramadhan","Shawwal","Dhul Qa\'dah","Dhul Hijjah"};

我遇到的问题是,当它是一个单词的月份名称(即 Muharram、Safar、Rajab 等)时,一切都会顺利进行。但是,如果它是一个带有空格或破折号的单词(即 Rabi-al awwal、Dhul Hijjah),它会抛出错误:NumberFormatException: unable to parse '' as integerNumberFormatException:无法将“al”解析为整数

我做错了什么?

最佳答案

是否有理由需要使用许多不同的字符类型来拆分字符串?

它失败的原因是因为您在

使用的拆分字符

String[] dateAr = data_string.split("-|\||\(|\)|\s+");

也在月份名称中。

在该行之后放置一个调试点,或者对 dateAr 数组中的每个执行一个调试点并记录结果。这样,您就可以了解它是如何拆分的。

关于java - NumberFormatException:无法将 '' 解析为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11459547/

相关文章:

java - 从数组添加到 ListArray

android - 此 Activity 需要 'android:screenOrientation="未指定 "' or '“fullSensor”'

javascript - splice 从数组及其父数组中删除 - 奇怪的问题

java - 在 Java 中显示来自数据库的多个图像

java - 如何上传图片并将其保存在数据库中?

java - 通过下拉菜单更改搜索框正在搜索的内容

android - 使用布局参数限制 AlertDialog 中 EditText 的宽度?

arrays - 在 Swift 中将字符串数组添加到 firebase

php - 在多维数组中使用 in_array 搜索

java - 如何将 java 对象转换为它自己的 getComponentType?