加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

day14

发布时间:2020-12-14 06:09:43 所属栏目:百科 来源:网络整理
导读:14.01 常见对象(正则表达式的概述和简单使用) ?A.正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。 举例 :注册邮箱,邮箱有用户名和密码,一般会对其进行限制 ?B.案例需求 需求:检验QQ号码 1.5-15为数字 2.不能以0开头

14.01 常见对象(正则表达式的概述和简单使用)
?A.正则表达式
  是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。
  举例:注册邮箱,邮箱有用户名和密码,一般会对其进行限制
?B.案例需求
  需求:检验QQ号码
    1.5-15为数字
    2.不能以0开头
    3.必须全部是数字

public class day14_01 {
    /**
     * 检验QQ号码
         1.5-15为数字
         2.不能以0开头
         3.必须全部是数字
     */
    public static void main(String[] args) {
        System.out.println("没有正则:"+checkQQ("1235115"));
        
        //使用正则表达式定义:
        String regex = "[1-9]d{4,14}";
        System.out.println("123456789".matches(regex));
        System.out.println("01234566".matches(regex));
    }
    public static boolean checkQQ(String qq){
        boolean flag = true;
        if(qq.length()>=5 && qq.length()<=15){            //1.5-15位的长度
            if(!qq.startsWith("0")){                    //2.必须以0开头
                char[] arr  = qq.toCharArray();
                for (int i = 0; i < arr.length; i++) {
                    char ch = arr[i];
                    if(!(ch >= ‘0‘ && ch <= ‘9‘)){        //3.必须全为数字
                        flag = false;
                        break;
                    }
                }
            }else{
                flag = false;
            }
        }else{
            flag = false;
        }
        return flag;
    }
}
View Code

14.02 常见对象(字符类演示)
?A.字符类
  [abc]     ? ? ?a,b,c单个字符
  [^abc]    ? ? ? ?除了a,c的任何单个字符
  [a-zA-z]   ? ? ? ? a-z,A-Z包括两端
  [a-d[m-p]]     a-d或者m-p
  [a-z&&[def]]    d,e,f(交集)
  [a-z&&[^bc]]    a-z除了b,c
  [0-9]     ? ?? 0-9的字符
?B.预定义字符类
  .     ? ? ?任何字符
  d     ?? 数字字符 [0-9]
  D   ? ? ? ?? 非数字字符 [^0-9]
  s    ? ? 空白字符
  S     ? 非空白字符 [^s]
  w   ?   单词字符 [a-zA-Z_0-9]
  W      非单词字符

public class day14_03 {
    /**
     * B.预定义字符类
        .            任何字符
        d            数字字符      [0-9]
        D            非数字字符 [^0-9]
        s            空白字符
        S            非空白字符 [^s]
        w            单词字符      [a-zA-Z_0-9]
        W            非单词字符
     */
    public static void main(String[] args) {
        String regex1 = "d";                        //  表示转义字符,要想表示d的话,要d
        System.out.println("0".matches(regex1));
        System.out.println("a".matches(regex1));
        System.out.println("----------------");
        
        String regex2 = "D";                        //2. D            非数字字符 [^0-9]
        System.out.println("0".matches(regex2));    
        System.out.println("a".matches(regex2));
        System.out.println("------------------");
        
        String regex3 = "s";                        //3.s            空白字符
        System.out.println(" ".matches(regex3));    
        System.out.println("    ".matches(regex3));                    //tab键
        System.out.println("------------------");
        
        String regex5 = "w";                        //4.w            单词字符      [a-zA-Z_0-9]
        System.out.println("a".matches(regex5));    
        System.out.println("_".matches(regex5));                    //下划线
    }
}
View Code

?C.Greedy数量词
  X?      0或1
  X*     ?? 0或多次
  X+     ? 1或多次
  X{n}    ? ?恰好n次
  X{n,}    ? 至少n次
  X{n,m}   ?? 至少n次,不超过m次
14.05 常见对象(正则表达式的分割功能)
?A.正则表达式的分割功能
  String类的功能:public String[] split(String regex)
?B.案例演示

public class day14_05 {
    public static void main(String[] args){
        //使用空格切割或逗号切割
        String s = "金三胖 郭美美 李世民";
        String [] arr = s.split(" ");            //1.空格分隔
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("----------------------");
        String ss="金三胖.郭美美.李世民";
        String [] arr2 = ss.split(".");        //1. 这里比较特殊   .分隔
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
        
    }
}
View Code

14.06 常见对象(字符串中的数字排序

import java.util.Arrays;
public class day14_06 {
    public static void main(String[] args){
        /*分析:
             *1.字符串切割成字符串数组
             *2.将字符串转成数组存储在等长度的int数组
             *3.排序
             *4.遍历并拼接 */
        String s = "91,55,66,44,88";
        String[] sArr = s.split(",");
        int[] arr = new int[sArr.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(sArr[i]);
        }
        Arrays.sort(arr);
        
        String str="";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length-1){
                str += arr[i];
            }else{
                str = str +arr[i]+" ";
            }
        }
        System.out.println(str);
    }
}
View Code

14.07 常见对象(正则表达式的替换功能)
?A.正则表达式的替换功能:public String replaceAll(String regex,String replacement)
?B.案例演示
14.08 常见对象(正则表达式的分组功能)
案例演示:
  a.
  b.替换
    需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
14.09 常见对象(Pattern和Matcher)
?A.Pattern和Matcher的概述
?B.模式和匹配器的典型调用顺序
  Pattern p = Pattern.compile("a+b")
  Matcher m = p.matcher("aaaab")
  boolean b = m.matches();

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class day14_09 {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("a*b");        //获取正则表达式
        Matcher m = p.matcher("aaaab");            //获取匹配器
        boolean b= m.matches();                    //看是否能匹配
        
        System.out.println(b);
        System.out.println("aaaab".matches("a*b"));//与上面的结果一样
    }
}
View Code

14.10 常见对象(正则表达式的获取功能)
?A.获取功能
  Pattern和Matcher的结果使用
?B.案例演示
14.11 常见对象(Math类概述和方法使用)
A.Math类的概述:该类包含用于执行基本属性运算的方法,如初等函数,对数,三角函数
B.成员方法
  public static int abs(int a)
  public static double ceil(double a)
  public static double floor(double a)
  public static int max(int a,int b)
  public static double pow(double a,double b)
  public static double random()
  public static int round(float a)
  public static double sqrt(double a)

public class day14_11 {
    /**B.成员方法
     *    public static int abs(int a)
         public static double ceil(double a)
         public static double floor(double a)
         public static int max(int a,int b)
         public static double pow(double a,double b)
         public static double random()
         public static int round(float a)
         public static double sqrt(double a)
         */
    public static void main(String[] args) {
        int x = -10;
        System.out.println(Math.abs(x));        //取绝对值
        
        double d1 = 10.2;
        System.out.println(Math.ceil(d1));        //向上取整
        System.out.println(Math.floor(d1));        //向下取整
        System.out.println(Math.round(d1));        //四舍五入
        
        System.out.println("返回最大值:"+Math.max(20,30));
    }
}
View Code

14.12 常见对象(random类的概述何使用)
?A.概述
  此类用于产生随机数
?B.构造方法
  public Random()
  public Random(long seed)
?C.成员方法
  public int nextInt()
  public int nextInt(int i) (重点)

import java.util.Random;
public class day14_12 {
    public static void main(String[] args) {
        Random r = new Random();                //无参
        for (int i = 0; i < 5; i++) {                        //打印5个数
            System.out.println(r.nextInt());
        }
        System.out.println("--------------------");
        
        Random r2 = new Random(100);            //有参
        int a = r2.nextInt();
        System.out.println(a);
        int b = r2.nextInt();
        System.out.println(b);
    }
}
View Code

14.13 常见对象(system类的概述和使用)
?A.system类的概述
?  system类包含一些有用的类字段和方法。它不能被实例化
?B.成员方法
  public static void gc()
  public static void exit(int status)
  public static long currentTimeMillis()
  public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
?C.案例演示

public class day14_13 {
    /**
     * B.成员方法
     public static void gc()
     public static void exit(int status)
     public static long currentTimeMillis()
     public static void arraycopy(Object src,int length)
     */
    public static void main(String[] args) {
        new Demo();
    }
}
class Demo{
    public void finalize(){
        System.out.println("垃圾被清扫了");
    }
    
}
View Code

14.14 常见对象(BigInteger类的概述和方法使用)
?A.BigInteger的概述
  可以让超过Integer范围的数据进行运算
?B.构造方法
  public BigInteger(String val)
?C.成员方法
  public BigInteger add(BigInteger val)
  public BigInteger subtract(BigInteger val)
  public BigInteger multiply(BigInteger val)
  public BigInteger divide(BigInteger val)
  public BigInteger[] divideAndRemainder(BigInteger val)

import java.math.BigInteger;
public class day14_14 {
    /**
     *     A.BigInteger的概述
             可以让超过Integer范围的数据进行运算
         B.构造方法
             public BigInteger(String val)
         C.成员方法
             public BigInteger add(BigInteger val)
             public BigInteger subtract(BigInteger val)
             public BigInteger multiply(BigInteger val)
             public BigInteger divide(BigInteger val)
             public BigInteger[] divideAndRemainder(BigInteger val)
         */
    public static void main(String[] args) {
    //    long num = 2222222222222222222211L;        //超出范围
    //    String s = "2222222222222222222211";    //存储的是字符串格式
        
        BigInteger bi1 = new BigInteger("100");
        BigInteger bi2 = new BigInteger("2");
        
        System.out.println(bi1.add(bi2));
        System.out.println(bi1.subtract(bi2));
        System.out.println(bi1.multiply(bi2));
        System.out.println(bi1.divide(bi2));
        
        System.out.println("--------------------");
        BigInteger[] arr = bi1.divideAndRemainder(bi2);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}
View Code

14.15 常见对象(字符类演示)
?A.BigDecimal的概述
  在运算的时候,final类型和double很容易丢失精度
?B.构造方法
  public BigDecimal(String val)
?C.成员方法
  public BigDecimal add(BigInteger val)
  public BigDecimal subtract(BigInteger val)
  public BigDecimal multiply(BigInteger val)
  public BigDecimal divide(BigInteger val)
  public BigDecimal[] divideAndRemainder(BigInteger val)

import java.math.BigDecimal;
public class day14_15 {
    /**
 *     A.BigDecimal的概述
        在运算的时候,final类型和double很容易丢失精度
     B.构造方法
         public BigDecimal(String val)
     C.成员方法
         public BigDecimal add(BigInteger val)
         public BigDecimal subtract(BigInteger val)
         public BigDecimal multiply(BigInteger val)
         public BigDecimal divide(BigInteger val)
         public BigDecimal[] divideAndRemainder(BigInteger val)
     */
    public static void main(String[] args) {
        //System.out.println(2.0-1.1);        //0.8999999999999999
        
        BigDecimal bd1 = new BigDecimal(2.4);            //数值2.4
        BigDecimal bd2 = new BigDecimal(1.2);
        System.out.println(bd1.add(bd2));
        System.out.println(bd1.subtract(bd2));
        System.out.println(bd1.multiply(bd2));
        System.out.println(bd1.divide(bd2));
        
        System.out.println("------------方式一------------");
        
        BigDecimal bd11 = new BigDecimal("2.4");        //字符串"2.4"
        BigDecimal bd22 = new BigDecimal("1.2");
        System.out.println(bd11.add(bd22));
        System.out.println(bd11.subtract(bd22));
        System.out.println(bd11.multiply(bd22));
        System.out.println(bd11.divide(bd22));

        System.out.println("------------方式二------------");
        
        BigDecimal bd111 = BigDecimal.valueOf(2.0);        //valueOf()
        BigDecimal bd222 =BigDecimal.valueOf(1.8);
        System.out.println(bd111.subtract(bd222));
    }
}
View Code

14.16 常见对象(Date类的概述和方法使用)
?A.Date类的概述是uitl包下的,不能直接导入sql下的包
  类Date 表示特定的瞬间,精确到秒
?B.构造方法
  public Date()
  public Date(long data)
?C.成员方法
  public long getTime()
  public void setTime(long data)

import java.util.Date;
public class day_16 {
    /**
     *  A.Date类的概述是uitl包下的,不能直接导入sql下的包
             类Date  表示特定的瞬间,精确到秒
         B.构造方法
             public Date()
             public Date(long data)
         C.成员方法
              public long getTime()
             public void setTime(long data)
     */
    public static void main(String[] args) {
        Date d1 = new Date();                             //导入uitl下的包
        System.out.println(d1);                            //打印今天日子
        
        Date d2 = new Date(0);                             //有参,构造方法中0代表的是1970年1月1日
        System.out.println(d2);            
        
        Date d3 = new Date();
        System.out.println(d3.getTime());                //通过时间对象获取毫秒值
        System.out.println(System.currentTimeMillis());//通过系统类的方法获取当前时间毫秒值
        
        Date d4 = new Date();    
        d4.setTime(1000);                                //设置时间毫秒值
        System.out.println(d4);            
    }
}
View Code

14.17 常见对象(SimpleDateFormat类实现)
?A.DateFormat类的概述
  DateFormat 是日期/时间格式化子类的抽象类,它与语言无关的方式格式化并解析日期或时间,是抽象类,
?B.DateFormat子类SimpleDateFormat构造方法
  public SimpleDateFormat()
  public SimpleDateFormat(String data)
?C.成员方法
  public final String format(Date data)
  public Date parse(String source)

import java.text.DateFormat;
public class day14_17 {
    /**
     *   A.DateFormat类的概述
             DateFormat  是日期/时间格式化子类的抽象类,它与语言无关的方式格式化并解析日期或时间,是抽象类,
         B.DateFormat子类SimpleDateFormat构造方法
             public SimpleDateFormat()
             public SimpleDateFormat(String data)
         C.成员方法
              public final String format(Date data)
             public Date parse(String source)    
     */
    public static void main(String[] args) {
        DateFormat df1 = DateFormat.getDateInstance();//相当于父类引用子类对象
        System.out.println(df1);
        
    }
}
View Code

14.18 常见对象(你来到这个世界多少天)
14.19 常见对象(Calendar类的概述和获取日期)?A.Calendar类的概述   它是一个抽象类,他特定瞬间与一组注入YEAR,MONTH,....?B.成员方法   public static Calendar 14.20 常见对象(Calendar类的add()和set())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读