正規表現の定義とDateクラスCalendarクラスの使用

11409 ワード

01正規表現の概念と役割
* A:            
    * a:         
        *             ,        , Pattern          。
                       。
        *    :                。
    * b:         
    *       ,         ,         ,                  

02正規表現構文規則
* A:          
    * a:   
        * x        x
        * \\          '\'
        * \t        
        * 
* \r * b: * [abc] a、b c( ) * [^abc] , a、b c( ) * [a-zA-Z] a z A Z, ( ) * [0-9] 0 9 * [a-zA-Z_0-9] ( ) * c: * . 。 * \d :[0-9] * \w :[a-zA-Z_0-9] "com.itheima.tests"/finish * d: * ^ * $ * \b * e: * X? X, * X* X, * X+ X, * X{n} X, n * X{n,} X, n * X{n,m} X, n , m

03正規表現の練習と関連するStringクラスの方法
* A:            String   
    * a: boolean matches(String      )
        * "abc".matches("[a]")  
        *       true
    * b: String[] split(String      )
        * "abc".split("a")  
        *             
    * c: String replaceAll( String     ,String    )
        * "abc0123".repalceAll("[\\d]","#") 
        *        ,     

04正規表現マッチング練習
* A:          
    * a:     
        public class RegexDemo {
            public static void main(String[] args) {
                checkTel();
            }
            
            
            /*
             *            
             *  1      34578  0-9     11 
             */
            public static void checkTel(){
                String telNumber = "1335128005";
                //String    matches
                boolean b = telNumber.matches("1[34857][\\d]{9}");
                System.out.println(b);
            }
            
            /*
             *    QQ      
             *  0    ,   ,   5,10 
             *  123456 
             *  \\d  \\D      
             */
            public static void checkQQ(){
                String QQ = "123456";
                //  QQ         ,String    matches
                boolean b = QQ.matches("[1-9][\\d]{4,9}");
                System.out.println(b);
            }
        }

05正規表現カット練習
* A:          
    * a:     
        public class RegexDemo1 {
            public static void main(String[] args) {
                split_1();
                split_2();
                split_3();

            }
            
            /*
             * String   split        
             * 192.168.105.27          
             */
            public static void split_3(){
                String ip = "192.168.105.27";
                String[] strArr = ip.split("\\.");
                System.out.println("     "+strArr.length);
                for(int i = 0 ; i < strArr.length ; i++){
                    System.out.println(strArr[i]);
                }
            }
            
            /*
             * String   split        
             * 18 22 40 65          
             */
            public static void split_2(){
                String str = "18    22     40          65";
                String[] strArr = str.split(" +");
                System.out.println("     "+strArr.length);
                for(int i = 0 ; i < strArr.length ; i++){
                    System.out.println(strArr[i]);
                }
            }
            
            /*
             *  String   split        
             *  12-25-36-98    -        
             */
            public static void split_1(){
                String str = "12-25-36-98";
                //  -        ,String   split
                String[] strArr = str.split("-");
                System.out.println("     "+strArr.length);
                for(int i = 0 ; i < strArr.length ; i++){
                    System.out.println(strArr[i]);
                }
            }
        }       

06正規表現置換練習
* A:          
    * a:     
        public class RegexDemo1 {
            public static void main(String[] args) {
                replaceAll_1();
            }
            
            /*
             * "Hello12345World6789012"        
             * String   replaceAll(    ,        )
             */
            public static void replaceAll_1(){
                String str = "Hello12345World6789012";
                str = str.replaceAll("[\\d]+", "#");
                System.out.println(str);
            }
        }

07正規表現メールアドレス検証
* A:            
    * a:     
        public class RegexDemo2 {
            public static void main(String[] args) {
                checkMail();
            }
            /*
             *            
             *    :
             *   [email protected]
             *   [email protected]
             *   [email protected]
             *   [email protected]    
             *   
             *   @:        _       1 
             *   @:                   1 
             *   .:       
             *     
             */
            public static void checkMail(){
                String email ="[email protected]";
                boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
                System.out.println(b);
            }
        }

08ミリ秒値の概念
* A:      
    * a:       
        * java.util.Date
    * b:     
        * 1000  =1 
    * c:    0 
         * System.currentTimeMillis()    long    
         *              3742769374405    
         *     ;   1970 1 1 ,  0:00:00              0
         *   2088 8 8     
         *         ,       

09 Dateクラスの構築方法
* A: Date      
    * a:     
        * public Date()
    * b:     
        * public Date(long times)

==================================================
10 Dateクラスのgetとsetメソッド
* A:Date  get set  
    * public long getTime() 
        *         ,        
    * public void setTime(long times);
        *         ,         

11日フォーマットSimpleDateFormat
* A:      SimpleDateFormat
    * a:         (   )
        *          java.text.DateFormat    ,     ,       
        *         java.text.SimpleDateFormat           ,       
    * b:            
        * 1:   SimpleDateFormat  
            *        ,           (    )
        * 2: SimpleDateFormat    format        
            * public String format(Date date)       ,     
            *     :
            * yyyy      
            * MM        
            * dd           
            * HH       0-23  
            * mm            
            * ss       
            * yyyy MM dd  HH mm  ss       ,: -                 

12文字列から日付オブジェクトへの変換
* A:          
    * a:     
        * 1:   SimpleDateFormat   
            *      ,      
        * 2:     ,     parse   String,  Date
            *   :         yyyy-MM-dd,               

13 Calendarクラス_1
* A: Calendar _1
    * a:    (   )
        * java.util.Calendar
    * b:     
        * Calendar        getInstance()           
        *      new     ,          

14 Calendarクラス_2
* A: Calendar _2
    * a:     
        * getTime()      ,  Date    
        * get(    )           
    * b:     
        Calendar c = Calendar.getInstance();
        //     
        int year = c.get(Calendar.YEAR);
        //     
        int month = c.get(Calendar.MONTH) + 1;
        //     
        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + " " + month + " " + day + " ");

15 Calendarクラス_3
* A: Calendar _3
    * a:     
        * set(int field,int value)         
    * b:     
        /*
         * Calendar  set        set(int field,int value) field            value
         *         
         * 
         * set(int year,int month,int day)   3     , , 
         */
        public static void function_1() {
            Calendar c = Calendar.getInstance();
            //   ,  ,   10  
            // c.set(Calendar.MONTH, 9);
    
            //    , , 
            c.set(2099, 4, 1);
    
            //     
            int year = c.get(Calendar.YEAR);
            //     
            int month = c.get(Calendar.MONTH) + 1;
            //     
            int day = c.get(Calendar.DAY_OF_MONTH);
            System.out.println(year + " " + month + " " + day + " ");
        }

16 Calendarクラス_4
* A: Calendar _4
    * a:     
        * add(int field, int value)        
        * int get(int field)         
    * b:     
        /*
         * Calendar   add       ,
         *             ,
         *         add(int field, int value)
         */
        public static void function_2() {
            Calendar c = Calendar.getInstance();
            //        ,    280 
            c.add(Calendar.DAY_OF_MONTH, -280);
            //     
            int year = c.get(Calendar.YEAR);
            //     
            int month = c.get(Calendar.MONTH) + 1;
            //     
            int day = c.get(Calendar.DAY_OF_MONTH);
            System.out.println(year + " " + month + " " + day + " ");
        }

17日練習_何日生きてきた
* A:     _     
    * a:     
        /*
         *         
         *            
         *            ,  
         */
        public static void function() throws Exception {
            System.out.println("           YYYY-MM-dd");
            //      ,    
            String birthdayString = new Scanner(System.in).next();
            //      ,  Date  
            //  SimpleDateFormat  ,     
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            //    parse,         
            Date birthdayDate = sdf.parse(birthdayString);
            
            //         
            Date todayDate = new Date();
            
            //          ,Date    getTime
            long birthdaySecond = birthdayDate.getTime();
            long todaySecond = todayDate.getTime();
            long secone = todaySecond-birthdaySecond;
            
            if(secone < 0){
                System.out.println("     ");
            }
            else{
            System.out.println(secone/1000/60/60/24);
            }
            
        }

18日練習_閏年計算
* A:     _    
    * a:     
        /*
         *      
         *  2000 3000
         *       :           3 1 ,add    1 ,    ,29  
         */
        public static void function_1(){
            Calendar c = Calendar.getInstance();
            //   ,       3 1 
            c.set(2088, 2, 1);
            //  add  ,    1 
            c.add(Calendar.DAY_OF_MONTH, -1);
            //get      
            int day = c.get(Calendar.DAY_OF_MONTH);
            System.out.println(day);
        }

19まとめ
  • 今日の知識点をまとめます.