4

私はアンドロイドでプロジェクトを持っています、そして私は分割文字列が必要です、それは実際にここで日付です私が分割しようとしている文字列です:

String datetime = "01/03/2013 09:00";

これが私がそれらを呼ぶ方法です:

int year = splitDateTime(dateTime)[0];
public int[] splitDateTime(String datetime){
        String date_time = datetime;
        String delimiter = "//:";

        String[] sParts;
        int[] intParts;

        sParts = date_time.split(delimiter);
        intParts = new int[sParts.length];

        for(int i =0; i < sParts.length ; i++)
            intParts[i] = Integer.parseInt(sParts[i]);

        return intParts;
    }

しかし、それは私にエラーを与え続けます、それであなたが私を助けてくれたら私は幸せです。乾杯

4

4 に答える 4

5

私はあなたが次のようなことを意味しているに違いない:

String datetime = "01/03/2013 09:00";

String[] sParts = datetime.split("[/:\\s+]");
int[] iParts = new int[sParts.length];

for(int i = 0; i < sParts.length; i++)
    iParts[i] = Integer.parseInt(sParts[i]);

System.out.println(Arrays.toString(iParts));

出力:

[1, 3, 2013, 9, 0]
于 2013-03-01T02:56:03.267 に答える
3

カレンダーを使うべきだと思います

String dateTime = "01/03/2013 09:00";
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d = f.parse(dateTime);

Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(Calendar.YEAR);
于 2013-03-01T02:56:39.387 に答える
0

のようなものを使用して正規表現を利用する^(\d+)/(\d+)/(\d+) (\d+):(\d)ことができ、キャプチャされた各グループを取得できます。

于 2013-03-01T02:58:53.543 に答える
0

StringTokenizerベースのソリューションが最速だと思います

public static int[] splitDateTime(String dateTime) {
    int[] intParts = new int[5];
    StringTokenizer t = new StringTokenizer(dateTime, "/ :");
    for (int i = 0; t.hasMoreTokens(); i++) {
        intParts[i] = Integer.parseInt(t.nextToken());
    }
    return intParts;
}

public static void main(final String[] args) throws IOException {
    System.out.println(Arrays.toString(splitDateTime("01/03/2013 09:00")));
}

出力

[1, 3, 2013, 9, 0]
于 2013-03-01T04:27:43.933 に答える