欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

20201026周报

程序员文章站 2024-03-20 11:28:52
...

周报

这周我们学习了内部类(inner class) 、异常、常用类的包
主要讲的就是常用类的包
Java是一门面向对象的语言,sun公司提供基于面向对象的帮助文档(API Application Program Interface) ,并针对不同的版本生成的API

API中根据不同的功能分如下包 (package)

  • java.applet.* : java的小应用程序
  • java.awt.* 和 java.swing.* : java的图形用户界面(开发单机版的小游戏)
  • java.lang.* : java的语言包
  • java.util.* : java的工具类包、集合框架包
  • java.io.* : java文件读写包(Input 、Output)
  • java.net.* : java的网络编程包(Socket机制相关,URL)
  • java.sql./ javax.sql. : java的数据库操作
  • java.lang.reflect.* 反射相关包

java的lang包

1、包装类
定义: Java的8个基本数据类型对应的 对象类型,称为它们的包装类
为什么需要包装类:
基本数据类型中不能提供方法, 不能与其他引用数据类型转换,此时包装类作为该基本数据类型的对象类型,不仅提供常用的方法,还可以与其他数据类型互相转换 和 “装箱”、“拆箱”
20201026周报

正则表达式

1、正则表达式定义
正则表达式(Regular Expression)由字母和符号组成的具有特定意义的公式,用于匹配或检索符合条件的字符串。
例如 在网页上输入用户名,要求用户名必须由数字,字母,下划线,或者长度必须8-16位之间 像这样的满足条件的公式,都是编写的 正则表达式进行验证。

^[a-zA-Z0-9_]{8,16}$

解释: ^ :表示以指定的字符开头
$:以指定符合结尾
[ a-zA-Z]: 字符必须是这个a-z或 A-Z之间的一个字符
{8,16}:匹配前面的字符8次到16次之间
正则表达式不属于某一门编程语言,可以在很多语言中使用, 例如 Java ,Python 、JS、MySql
Java提供对正则表达式的支持,有如下类
a、java.util.regex.Pattern 正则表达式的编译器类
b、java.util.regex.Matcher 正则表达式的匹配器
c、java.lang.String 中的方法自动兼容 正则语法

元字符

元字符是组成正则表达式的最基本的符号 ,通常代表一定意义

元字符 解释
. 匹配任意一个字符
\w 匹配一个数字,字母,_ 或汉字 \W :对\w取反
\d 匹配一个数字 \D:对\d取反
\s 匹配一个空白字符 \S:对\s取反
\b 匹配以什么字符开头
^ 以指定的字符串开头 ,用于正则开始的标志位
$ 以指定的字符串结尾,用于正则结束的标志位
  1. 匹配以abc开头的字符串
^abc  或者  \babc

2、匹配8位数的QQ号码

^\d\d\d\d\d\d\d\d$  或  ^\d{8}$

3、匹配以1开头的手机号

^1\d\d\d\d\d\d\d\d\d\d$
 String s ="abc";
        System.out.println(s.matches("abc"));
        System.out.println(s.matches("^abc"));
        s="6";
        System.out.println(s.matches("\\d"));
        s="123456780";
        System.out.println(s.matches("\\d{8}"));

区间段

   //[x] :表示匹配一个字符
        //[abc]:表示匹配a或b或c 一个字符
        System.out.println("a".matches("[abc]"));
        System.out.println("b".matches("[abc]"));
        //[^abc]:匹配不是 a 或b 或c
        System.out.println("b".matches("[^abc]"));
        // [0-9]:匹配任意一个数字
        System.out.println("4".matches("[0-9]"));

重复限定符

正则表达式中用于匹配重复次数的符号

重复限定符 意义
* 匹配前一个字符0次或多次
匹配前一个字符0次或1次
+ 匹配前一个字符1次或多次
{n} 匹配前一个字符n次
{n,} 匹配前一个字符至少n次
{n,m} 匹配前一个字符n到m次(包含n次,m次)

转义

如果要匹配的字符串中本身就包含小括号,那是不是冲突?应该怎么办?
针对这种情况,正则提供了转义的方式,也就是要把这些元字符、限定符或者关键字转义成普通的字符,做法很简 答,就是在要转义的字符前面加个斜杠,也就是\即可。 如:要匹配以(ab)开头:

或条件

回到我们刚才的手机号匹配,我们都知道:国内号码都来自三大网,它们都有属于自己的号段,比如联通有 130/131/132/155/156/185/186/145/176等号段,假如让我们匹配一个联通的号码,那按照我们目前所学到的正 则,应该无从下手的,因为这里包含了一些并列的条件,也就是“或”,那么在正则中是如何表示“或”的呢? 正则用符号 | 来表示或,也叫做分支条件,当满足正则里的分支条件的任何一种条件时,都会当成是匹配成 功。
那么我们就可以用或条件来处理这个问题