2012-07-12 67 views
1

我有一个日期字符串:NumberFormatException异常:无法解析“”作为整数

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

..这我传给按钮点击另一个类,如果日期有一个事件:

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"}; 

我遇到的问题是,当它是一个一个字月份名(即穆哈拉姆,萨法尔,拉贾布等)。一切工作顺利。但是,如果这是一个带有空格或短划线的词(即Rabi-al awwal,Dhul Hijjah),则会引发错误:NumberFormatException: unable to parse '' as integerNumberFormatException: unable to parse 'al' as integer

我在做什么错?

回答

2

是否有你需要使用很多不同的字符类型的拆就串理由吗?

它的失败的原因是因为拆分字符您在

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

使用也在月份名称。

把一个调试点行之后,或每个dateAr阵列上做了并记录结果。这样,你可以了解它是如何分裂的。

+0

感谢指点出来。我删除了's +'作为空格,它工作。然而,还有什么其他的解决方案能有如果我想分裂标记中的分隔符'-'的字符串,但也在月份名称显示呢? – input 2012-07-12 21:12:36