文字列はYYYY-YYYYフォーマットであるかどうかを確認する方法

Srishtiシン:

私が持っているArrayList以下の通り:

dates : [
"1981-1990",
"1971-1980",
"1991-2000"
]

リスト内の値は、年の範囲かそうでないかどうかを確認するために:私はチェックを実行したいと思います。

EDITEDは:時々私は「YYYY-MM-DD」と時々年の範囲のような適切な日付形式を取得します。私は両方の条件で動作するように私の機能が欲しいです。日付が現在または年の範囲である場合は、日付としてそれを識別する必要があります。それで全部です

YCF_L:

あなたは使用することができた年年:: isBeforeからのjava-時間そうのようなAPI:

String[] ranges = {"1981-1990", "1971-1980", "1991-2000"};
for (String range : ranges) {
    String[] dates = range.split("-");
    if (Year.parse(dates[0]).isBefore(Year.parse(dates[1]))) {
        System.out.println("Correct range");
    } else {
        System.out.println("Wrong range");
    }
}

あなたの編集後、私はここで、この解決策となるだろう。

String[] dates = {"1981-1990", "2020-02-25", "1971-1980", "1998-02-25", "1991-2000"};
for (String date : dates) {
    if (date.matches("\\d{4}-\\d{4}")) {
        String[] split = date.split("-");

        if (Year.parse(split[0]).isBefore(Year.parse(split[1]))) {
            System.out.println("Correct range");
        } else {
            System.out.println("Wrong range");
        }
    } else {
        try {
            LocalDate.parse(date);
            System.out.println("Correct date");
        } catch (DateTimeParseException ex) {
            System.out.println("Wrong date");
        }
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14281&siteId=1