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

最良の方法は、日付区切り文字を変更することです-/(スラッシュ)または.(ドット)に変更します本当にこのままにしたい場合は、分割後よりも、文字列配列の最後の文字をチェックして、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 に答える