Java11 正規表現を使用して時刻チェックを実装するサンプル

環境
Java SE 11
Eclipse 4.26.0

構文
時刻のチェックの正規表現式
^([0-1][0-9]|[2][0-3]):[0-5][0-9]$|^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$
時間[00~23] 分[00~59] 秒[00~59]
書式
Pattern pattern = Pattern
.compile(“^([0-1][0-9]|[2][0-3]):[0-5][0-9]$|^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$");
result = pattern.matcher(str).matches();
Patternクラスを使って時刻チェックを行います

使用例

package com.arkgame.study;

import java.util.regex.Pattern;

public class AppDemo {

      public static void main(String[] args) {

            System.out.println("HH:mm:ss形式のチェック結果:" + funA("22:49:59"));
            System.out.println("HH:mm形式のチェック結果:" + funA("22:59"));
            System.out.println("時間が不正のチェック結果:" + funA("60:59"));
            System.out.println("分が不正のチェック結果:" + funA("22:89"));
            System.out.println("秒が不正のチェック結果:" + funA("21:59:79"));
      }

      /**
       * 時刻のチェック
       * 
       * @param str
       * @return true:時刻 false 時刻ではない
       */
      public static boolean funA(String str) {
            boolean result = false;
            if (str != null) {
                  // 時刻のチェック 時間[00~23] 分[00~59] 秒[00~59]
                  Pattern pattern = Pattern
                              .compile("^([0-1][0-9]|[2][0-3]):[0-5][0-9]$|^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$");
                  result = pattern.matcher(str).matches();
            }
            return result;
      }
}

実行結果
HH:mm:ss形式のチェック結果:true
HH:mm形式のチェック結果:true
時間が不正のチェック結果:false
分が不正のチェック結果:false
秒が不正のチェック結果:false

Java

Posted by arkgame