zoukankan      html  css  js  c++  java
  • 第十四天笔记

    黑马程序员<a href="http://www.itheima.com" target="blank">java培训</a>

                                     第十四天笔记

    1.正则表达式概述与基本使用

    正则表达式是用来校验符合正确规则的一串字符。

    介绍规则:

    在String类中有一个matcher方法,它有一个正则表达式的连接。

    package lm.Regex;

    import java.util.Scanner;

    /**
    *
    * @author Administrator
    *
    /**
    * 验证qq号码 需求 1.长度5-15之间的数字 2.要求0不能开头
    *
    * 思路: 1。考虑做一个方法 返回值:boolean 参数:String 要验证的qq号码
    * 2.从键盘输入一个qq号码 Scanner
    * 3.完成方法checkQQ的功能
    *
    */


    public class RegexDemo2 {


    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入你的QQ号:");
    if( method2(sc.nextLine()))
    {
    System.out.println("验证成功");
    }
    else
    {
    System.out.println("验证失敗");
    }
    }
    /*
    * 正則表達式驗證QQ
    */
    private static Boolean method2(String s) {


    return s.matches("[1-9][0-9]{4,14}");


    }

    }

    2.正则表达式的组成规则

    字符

                                x 字符 x。举例:'a'表示字符a

                                \ 反斜线字符。

                                新行(换行)符 ('u000A')

                                回车符 ('u000D')

                               

    字符类

                                [abc] a、b 或 c(简单类)

                                [^abc] 任何字符,除了 a、b 或 c(否定)

                                [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

                                [0-9] 0到9的字符都包括

                               

    预定义字符类

                                . 任何字符。我的就是.字符本身,怎么表示呢? .

                                d 数字:[0-9]

                                w 单词字符:[a-zA-Z_0-9]

                                         在正则表达式里面组成单词的东西必须有这些东西组成

    边界匹配器

                                ^ 行的开头 (就业班js中使用)

                                $ 行的结尾 (就业班js中使用)

                                 单词边界

                                         就是不是单词字符的地方。

                                         举例:hello world?haha;xixi

                               

                               

    Greedy 数量词

                                X?  X,一次或一次也没有

                                X*  X,零次或多次

                                X+  X,一次或多次

                                X{n}  X,恰好 n 次

                                X{n,}  X,至少 n 次

                                X{n,m}  X,至少 n 次,但是不超过 m 次

    3.正则表达式的判断功能

    String 类中

    public boolean matches(String regex)

    参数:是正则表达式(规则)

    返回值:代表是否与给定的规则匹配。

     

    4.邮箱的校验案例

    正则: . 匹配的是任意字符

    现在要匹配  “.”  .

    在java中”” 需要使用 \

    在正则中的. 到java代码中就需要写在 \.

    package lm.Regex;
    
    import java.util.Scanner;
    
    /*
     * 校验邮箱
     *      abc@163.com
     *      12345@qq.com
     *   admin@yahoo.com.cn
     *   user@itcat.cn
     *   
     * 分析:
     *     1.定义一个方法checkEmail
     *          参数:要校验的邮箱 返回值:是否符合规则
     *     2.完成checkEmail方法功能
     *         1.定义邮箱的规则
     *          [0-9a-z_A-Z]{3,10}@[0-9a-z_A-Z]{2,5}.[a-zA-Z]{2,3}    
     *       
     */
    
    public class RegexDemo3 {
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你的郵箱号:");
            Boolean b=method2(sc.nextLine());
            if (b) {
                System.out.println(b);
                System.out.println("验证成功");
            } else {
                System.out.println(b);
                System.out.println("验证失敗");
            }
        }
    
        /*
         * 正則表達式驗證QQ
         */
        private static Boolean method2(String s) {
            Boolean flag = false;
            String regex1="[0-9a-z_A-Z]{3,10}@[0-9a-z_A-Z]{2,15}\.[a-zA-z]{2,3}";
            String regex2="\w{3,10}@\w{2,10}(\.\w{2,3})+";
            if (s.matches(regex2)) {
                flag = true;
            }
    
            return flag;
    
        }
    
    }

    5.正则表达式的分割功能

    使用String类的split方法

    Public String[] split(String regex)

    参数:正则表达式(规则);

    返回值:数组,它是根据规则切割后的信息.

    package lm.Regex;
    
    import java.lang.reflect.Array;
    import java.util.Arrays;
    
    /**
     * 
     * @author Administrator
     *     分割操作 需求 String s="aa,bb,cc"; 要得到 ["aa","bb","cc"]
     *     String ss = "aa.bb.cc";
     *     String s1 = "D:\java0309\day14-常见对象\PPT";
     */
    public class RegexDemo5 {
        public static void main(String[] args) {
            String s="aa,bb,cc";
            String[] str=s.split(",");
            System.out.println(Arrays.toString(str));
            
            
            String ss = "aa.bb.cc";
            String[] str1=ss.split("\.");
            System.out.println(Arrays.toString(str1));
            
            
            String s1 = "D:\java0309\day14-常见对象\PPT";
            String[] str2=s1.split("\\");
            System.out.println(Arrays.toString(str2));
        }
    
    }

    6.Math类概述和方法使用

    Java.lang.Math类它是一个关于数学运算操作类。

    它中的方法是static,使用时直接Math.方法名.

    package lm.math;
    /**
     * Math 类的标记
     * @author Administrator
     *
     */
    public class MathDemo1 {
    
    
        public static void main(String[] args) {
            //1.绝对值
            System.out.println(Math.abs(-10));
    
            // 2.四舍五入
            System.out.println(Math.round(15.9));
            
            // 3.两个数的最大值与最小值
            System.out.println(Math.max(20, 10));
            System.out.println(Math.min(20, 10));
            
            // 4.开平方
            int a=(int) Math.sqrt(9);
            System.out.println(a);
            
            // 5.求某个数的n次方
            int b=(int) Math.pow(10, 3);
            System.out.println(b);
            //6.求某个浮点数的向下值 向上值
            double c=3.14;
            double d=Math.floor(c);
            double e=Math.ceil(c);
            System.out.println(d);
            System.out.println(e);
            //求随机数
            int radom=(int) (Math.random()*100+1);
            System.out.println(radom);
            
        }
    
    }

    7.如何获取任意范围内的随机数

       获取50-100之间的随机数

    int n=(int) (Math.random()*51+50) ;

    (Math.random()*(100-50+1))+50;

    package lm.math;
    /**
     * 
     * @author Administrator
     * Math类中方法介绍
     */ 
    public class MathDemo2 {
        public static void main(String[] args) {
            //// 公式: Math.random(end-start+1)+start
             int c=(int) (Math.random()*100)+1;
             System.out.println("1-100的随机数"+c);
             //50-100 不包含100
             int d=(int) (Math.random()*50+50);
             System.out.println("50-100的随机数"+d);
             //51-100 不包含50
             int  a=(int) (Math.random()*50+51);
             System.out.println("51-100的随机数"+a);
             //得到0-49之间的数
             
            int b=(int) (Math.random()*49);
            System.out.println("0-49的随机数"+b);
            
            //---得到的是50-101 得到了50-100之间的随机数
            int n=(int) (Math.random()*51+50) ;
            System.out.println("50-101的随机数"+n);
             
        }
    
    }

    8.random类,是jdk1.5以后提供的一个可以获取随机数的类

       总结:

        构造方法:

    New Random () 使用毫秒值作为种子

    New Random (long  seed) 使用指定值作为种子,每次的得到的随机数是一样的

         成员方法:

          NextInt();返回一个int范围的随机数

          NextInt(n);返回一个n范围之内的随机数

    9.Date的概述和构造方法

      Date类要求大家掌握,在就业班中会经常使用.

    Java.util包下的Date

    Date类它代表一个时间点,精确到毫秒.

    10.DateFormat实现日期和字符串的相互转换

     DateFormat类它可以在Date----String之间做相互转换。

    Date---àString  格式化

    String-àDate   解析

    DateFormat类在java.text包下.

    在实际开发中对字符中与Date进行相互转换,一般情况下使用DateFormat类的子类

    SimpleDateFormat

    1. 怎样将一个Date对象格式化成指定效果的字符串

    使用DateFormat类中提供的format方法。

    public String format(Date date)

    SimpleDateFormat类中也有这个方法。

    问题:SimpleDateFormat它有无参数构造,它可以调用format方法对一个Date对象进行格式化,但是得到的不是我们想要的效果,怎样处理?

    通知SimpleDateFormat它在做format操作时,得到字符串是我们指定的一个效果,就可以。

    可以在创建SimpleDateFormat时指定一个模板  new SimpleDateFormat(String pattern)

    package lm.datefomat;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     *
     *   DateFormat进行将一个Date对象格式化成指定效果的字符串
     */
    public class DateFormDemo1 {
    
        public static void main(String[] args) {
            
            //方法一
           Date d=new Date();
           SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
          String s= sdf.format(d);
           System.out.println(s);
           
           
           //方法二
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
            String s1= sdf.format(System.currentTimeMillis());
            System.out.println(s1);
               
        }
    
    }

          

  • 相关阅读:
    UNIX环境高级编程——System V 共享内存区
    UNIX环境高级编程——system V消息队列
    UNIX环境高级编程——进程间通讯方法整理
    UNIX环境高级编程——system V信号量
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/liman/p/4430628.html
Copyright © 2011-2022 走看看