14.01_常见对象(正则表达式的概述和简单使用)

小编 2026-06-23 阅读:1230 评论:0
14.01_常见对象(正则表达式的概述和简单使用) A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册...

14.01_常见对象(正则表达式的概述和简单使用)

  • A:正则表达式
    • 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
    • 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的
  • B:案例演示
    • 需求:校验qq号码.

      • 1:要求必须是5-15位数字
      • 2:0不能开头
      • 3:必须都是数字
    • a:非正则表达式实现

    • b:正则表达式实现

###14.02_常见对象(字符类演示)

  • A:字符类
    • [abc] a、b 或 c(简单类)
    • [^abc] 任何字符,除了 a、b 或 c(否定) 单个字符,10代表的是两个字符
      [a-d[m-p]] a到d或m到p:[a-dm-p] (即取并集)
      [a-z&&[def]] d、e、f(交集)
      [a-z&&[^m-p]] a到z,而非m到p:[a-lq-z]
    • [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
    • [0-9] 0到9的字符都包括
      ###14.03_常见对象(预定义字符类演示)
  • A:预定义字符类
    • . 任何字符。 只能代表任意一个字符
      \\再字符串中代表转义字符,使用要用双斜杠
    • \\d 数字:[0-9]
      \\D 非数字:[^0-9]
      \\s 空白字符: [\\t\\n\\x0B\\f\\r] \\t水平制表 \\x0B 垂直制表 \\r换行
      \\S 非空白字符:[^\\s]
    • \\w 单词字符:[a-zA-Z _ 0-9] 注意下划线也在
  • \\W 非单词字符: [^\\w]
    ###14.04_常见对象(数量词)
  • A:Greedy 数量词
    • X? X一次或没有 没有指空格字符,而不是非x范围内字符
    • X* X零次或多次 多次也包括1次
    • X+ X一次或多次
    • X{n} X恰好 n 次
    • X{n,} X至少 n 次
    • X{n,m} X至少 n 次,但是不超过 m 次
      如果X内有多个元素,那就是具有X元素的合

例:
String regex = “[ab]{1,6}”;
System.out.println(“aaaaabb”.matches(regex));
System.out.println(“ab”.matches(regex));
System.out.println(“abbbbb”.matches(regex));
System.out.println(“aaaabbbb”.matches(regex));

结果:
false
true
true
false

###14.05_常见对象(正则表达式的分割功能)

  • A:正则表达式的分割功能
    • String类的功能:public String[] split(String regex)
      对于分割的字符(串),通常是常见,普通的,没什么问题;

但是对某些特殊字符,如果字符(串)正好是正则的一部分,则需要转义才能使用,

这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \\等, 因它们是正则表达式中的一部分, 所以如果想用该字符本身, 这些字符需要进行转义才能表示它本身

所以指定分割的字符(串)时,最好不要包含用于正则表达式本身的字符,如上面的红色字符;

  • B:案例演示
    • 正则表达式的分割功能

###14.06_常见对象(把给定字符串中的数字排序)

  • A:案例演示
    • 需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”

###14.07_常见对象(正则表达式的替换功能)

  • A:正则表达式的替换功能
    • String类的功能:public String replaceAll(String regex,String replacement)
  • B:案例演示
    • 正则表达式的替换功能

###14.08_常见对象(正则表达式的分组功能)

  • A:正则表达式的分组功能
    叠词 快快乐乐 快快乐乐平平安安
    String regex = “(.)\\1(.)\\2”;
    System.out.println(“快快乐乐”.matches(regex));
    \\1代表第一组又出现一次 \\2代表第二组又出现一次
    String regex = “(.)\\1(.)\\2(.)\\3(.)\\4”;
    System.out.println(“快快乐乐平平安安”.matches(regex));

叠词 死啦死啦,高兴高兴

* 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组: 
  •   1     ((A)(B(C))) 
      2     (A 
      3     (B(C)) 
      4     (C) 
    
      组零始终代表整个表达式。
    
  • B:案例演示
    a:切割
    需求:请按照叠词切割: “sdqqfgkkkhjppppkl”;
    String s = “sdqqfgkkkhjppppk”;
    String regex = “(.)\\1+”;
    String arr_s[] = s.split(regex);
    for(String as : arr_s )
    {
    System.out.println(as);
    }
    System.out.println(arr_s.length);
    输出:
    sd
    fg
    hj
    k
    4

b:替换
需求:我我…我…我.要…要要…要学…学学…学.编…编编.编.程.程.程…程
将字符串还原成:“我要学编程”。

###14.09_常见对象(Pattern和Matcher的概述)

  • A:Pattern和Matcher的概述
  • B:模式和匹配器的典型调用顺序
    • 通过JDK提供的API,查看Pattern类的说明

    • 典型的调用顺序是

    • Pattern p = Pattern.compile(“a*b”);

    • Matcher m = p.matcher(“aaaaab”);

    • boolean b = m.matches();

###14.10_常见对象(正则表达式的获取功能)

  • A:正则表达式的获取功能
    • Pattern和Matcher的结合使用
  • B:案例演示
    • 需求:把一个字符串中的手机号码获取出来

###14.11_常见对象(Math类概述和方法使用)

  • A:Math类概述
    • Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
  • B:成员方法
    • public static int abs(int a)
    • public static double ceil(double a) 向上取整但是结果是double
    • public static double floor(double a) 向下取整,但是结果是double类型
    • public static int max(int a,int b) min自学
    • public static double pow(double a,double b) 前面是底数,后面是指数
    • public static double random() 0 -1 之间的double
    • public static int round(float a) 四舍五入
    • public static double sqrt(double a) 去平方根

###14.12_常见对象(Random类的概述和方法使用)

  • A:Random类的概述
    • 此类用于产生随机数如果用相同的种子创建两个 Random 实例,
    • 则对 每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
  • B:构造方法
    • public Random()
    • public Random(long seed)
  • C:成员方法

NextXXX是根据给定的种子数去计算
如果用的Random()就是随机种子数
(eedUniquifier() ^ System.nanoTime()

如果用相同的种子书,多个nextXXX返回值相同

  • public int nextInt()

  • public int nextInt(int n)(重点掌握)
    生成 0 到 n 范围的随机数 左闭右开

###14.13_常见对象(System类的概述和方法使用)

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

Finalize()方法详解:

  1. 什么是finalize()方法?,
    finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作。另外,Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

  2. finalize()方法什么时候被调用?
    垃圾回收器GC在回收对象进行内存释放前会先调用finalize方法

详细见:https://blog.csdn.net/qq_40940540/article/details/84069487

###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)

###14.15_常见对象(BigDecimal类的概述和方法使用)

  • A:BigDecimal的概述
    • 由于在运算的时候,float类型和double很容易丢失精度,演示案例。

    • 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

    • 不可变的、任意精度的有符号十进制数。

  • B:构造方法
    • public BigDecimal(String val)
  • C:成员方法
    • public BigDecimal add(BigDecimal augend)
    • public BigDecimal subtract(BigDecimal subtrahend)
    • public BigDecimal multiply(BigDecimal multiplicand)
    • public BigDecimal divide(BigDecimal divisor)
  • D:案例演示
    • BigDecimal类的构造方法和成员方法使用

###14.16_常见对象(Date类的概述和方法使用)(掌握)

  • A:Date类的概述
    • 类 Date 表示特定的瞬间,精确到毫秒。
  • B:构造方法
    • public Date()
    • public Date(long date)
  • C:成员方法
    • public long getTime()
    • public void setTime(long time)

###14.17_常见对象(SimpleDateFormat类实现日期和字符串的相互转换)(掌握)

  • A:DateFormat类的概述
    • DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat
  • B:SimpleDateFormat构造方法
    • public SimpleDateFormat()
    • public SimpleDateFormat(String pattern)
  • C:成员方法
    • public final String format(Date date)
    • public Date parse(String source)

###14.18_常见对象(你来到这个世界多少天案例)(掌握)

  • A:案例演示
    • 需求:算一下你来到这个世界多少天?

###14.19_常见对象(Calendar类的概述和获取日期的方法)(掌握)

  • A:Calendar类的概述
    • Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
  • B:成员方法
    • public static Calendar getInstance()
    • public int get(int field)

###14.20_常见对象(Calendar类的add()和set()方法)(掌握)

  • A:成员方法
    • public void add(int field,int amount)
    • public final void set(int year,int month,int date)
  • B:案例演示
    • Calendar类的成员方法使用

###14.21_常见对象(如何获取任意年份是平年还是闰年)(掌握)

  • A:案例演示
    • 需求:键盘录入任意一个年份,判断该年是闰年还是平年

###14.22_day14总结

  • 把今天的知识点总结一遍。
版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表