0

我正在设置这样的 date_string:

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

我像这样拆分它:

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

这也分割了回历月份名称中的空格和破折号,即 Rabi al-Thani 或 Dhul Hijjah:

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

如何仅拆分 date_string 而不是 date_string 中字符串的值?

4

2 回答 2

1

最好的方法是将日期分隔符更改为 /(斜杠)或 .(点)如果你真的想保持这样,那么在拆分之后,你可以检查字符串数组上的最后一个字符,如果它是一个字母,则将两个字符串合并为一个。 .

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

让它像这样最简单的方法..

于 2012-07-12T22:06:26.020 回答
0

我试图逐步拆分您的日期,因此请检查这是否适合您

List<String> tokens=new ArrayList<String>();

String data="theday-themonth-theyear|hijri_day-Dhul Qa\'dah (hijri_monthno) hijri_year";
String[] tmp = data.split("\\|");
//System.out.println(Arrays.toString(tmp));

for (String s:tmp[0].split("-"))
    tokens.add(s);

System.out.println(tokens);// -> [theday, themonth, theyear]

String[] tmp2=tmp[1].split("\\s*\\(|\\)\\s*");
//System.out.println(Arrays.toString(tmp2));

for (String s:tmp2[0].split("-",2))
    tokens.add(s);
System.out.println(tokens);// -> [theday, themonth, theyear, hijri_day, Dhul Qa'dah]

tokens.add(tmp2[1]);
tokens.add(tmp2[2]);
System.out.println(tokens);// -> [theday, themonth, theyear, hijri_day, Dhul Qa'dah, hijri_monthno, hijri_year]
于 2012-07-12T22:32:28.583 回答