1.正则表达式

- 是用来描述字符串内容格式,使用它通常用于匹配一个字符串的内容是否符合格式要求

- 正则表达式的语法:--------------了解、不用纠结、不用深入研究

     1.[]:表示一个字符,该字符可以是[]中指定的内容例如:[abc]:这个字符可以是a或b或c[a-z]:表示任意一个小写字母[a-zA-Z]:表示任意一个字母[a-zA-Z0-9]:表示任意一个字母数字[a-zA-Z0-9_]:表示任意一个数字字母下划线[^abc]:该字符只要不是a或b或c2.预定义字符:.:表示任意一个字符,没有范围限制\d:表示任意一个数字,等同于[0-9]\w:表示任意一个单词字符,等同于[a-zA-Z0-9_]--单词字符指字母/数字/_\s:表示任意一个空白字符\D:表示不是数字\W:不是单词字符\S:不是空白字符3.量词:?:表示前面的内容出现0-1次例如: [abc]? 可以匹配:a 或 b 或 c 或什么也不写+:表示前面的内容最少出现1次例如: [abc]+ 可以匹配:b或aaaaaaaaaa...或abcabcbabcbabcba....但是不能匹配:什么都不写 或 abcfdfsbbaqbb34bbwer...*:表示前面的内容出现任意次(0-多次)---匹配内容与+一致,只是可以一次都不写例如: [abc]* 可以匹配:b或aaaaaaaaaa...或abcabcba....或什么都不写但是不能匹配:abcfdfsbbaqbb34bbwer...{n}:表示前面的内容出现n次例如: [abc]{3} 可以匹配:aaa 或 bbb 或 aab 或abc 或bbc但是不能匹配: aaaa 或 aad{n,m}:表示前面的内容出现最少n次最多m次例如: [abc]{3,5} 可以匹配:aaa 或  abcab 或者 abcc但是不能匹配:aaaaaa 或 aabbd{n,}:表示前面的内容出现n次以上(含n次)例如: [abc]{3,} 可以匹配:aaa 或 aaaaa.... 或 abcbabbcbabcba....但是不能匹配:aa 或 abbdaw...4.()用于分组,是将括号内的内容看做是一个整体例如: (abc){3} 表示abc整体出现3次. 可以匹配abcabcabc但是不能匹配aaa 或abcabc(abc|def){3}表示abc或def整体出现3次.可以匹配: abcabcabc 或 defdefdef 或 abcdefabc但是不能匹配abcdef 或abcdfbdef

1.1.String支持的与正则表达式相关的方法:

- matches(): 使用给定的正则表达式验证当前字符串的格式是否符合要求

     public class MatchesDemo {public static void main(String[] args) {/*邮箱的正则表达式:[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+*/String email = "wangkj@tedu.cn";String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//使用regex匹配email是否符合格式要求boolean match = email.matches(regex);if(match){System.out.println("是正确的邮箱格式");}else{System.out.println("不是正确的邮箱格式");}}}

- split():将当前字符串按照满足正则表达式的部分进行拆分

     public class SplitDemo {public static void main(String[] args) {String line = "abc123def456ghi";String[] data = line.split("[0-9]+"); //按数字拆分(数字就拆没了)System.out.println(Arrays.toString(data)); //将data数组以String格式输出line = "123.456.789";data = line.split("\\."); //按.折分(.就拆没了)System.out.println(Arrays.toString(data));//最开始就是可拆分项(.),那么数组第1个元素为空字符串("")//如果连续两个(两个以上)可拆分项,那么中间也会拆出一个空字符串("")//如果末尾连续多个可拆分项目,那么拆出的空字符串被忽略(没有)line = ".123.456..789.......";data = line.split("\\."); //按.折分(.就拆没了)System.out.println(Arrays.toString(data));}}

- replaceAll():将当前字符串中满足正则表达式的部分给替换为给定的字符串

     public class ReplaceAllDemo {public static void main(String[] args) {String line = "abc123def456ghi57";//将line中的数字部分替换为#NUMBER#line = line.replaceAll("[0-9]+","#NUMBER#");System.out.println(line);}}

2.Object

- 是所有类的鼻祖,所有类都直接或间接继承了Object,万物皆对象,为了多态

- Object类中有几个经常被派生类重写的方法:toString()和equals()

- 调用Object类的toString()时默认返回:类的全称@地址,没有参考意义,所以常常重写toString()来返回具体的属性值

- 调用Object类的equals()时默认比较的还是==(即比较地址),没有参考意义,所以常常重写equals()来比较具体的属性值

> 注意:           //思考----------------------2:45继续
       >
       > 1. String类已经重写了equals()比较字符串内容
       > 2. 重写equals()的基本规则:
       >    - 两个对象必须是同一类型,若类型不同则返回false
       >    - 原则上要比较两个对象的属性是否相同

     package apiday02;import java.util.Objects;//点public class Point {private int x;private int y;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Point point = (Point) o;return x == point.x &&y == point.y;}@Overridepublic int hashCode() {return Objects.hash(x, y);}@Overridepublic String toString() {return "Point{" +"x=" + x +", y=" + y +'}';}public Point(int x, int y) {this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}}public class ObjectDemo {public static void main(String[] args) {/*Point类若不重写toString(),则调用的是Object中定义的toString()toString()返回的格式为: 类的全称@地址但通常这个返回结果对我们的开发没有帮助,所以需要重写toString()返回自己想要的java中的String、StringBuilder已经重写toString()直接返回字符串了*/Point p = new Point(100,200);System.out.println(p); //输出引用时,默认调用Object的toString()方法System.out.println(p.toString());/*Object中的equals()内部还是在用==来比较地址,没有实际意义因此我们自己定义的类在使用时若想比较对象的数据,常常需要重写equals*/Point p1 = new Point(100,200);Point p2 = new Point(100,200);System.out.println(p1==p2); //false,==比较的是地址//true,因为重写的equals()中比较的是x和y的值System.out.println(p1.equals(p2)); //trueString s1 = new String("abc");String s2 = new String("abc");//true,String中重写equals()比较内容System.out.println(s1.equals(s2));StringBuilder builder1 = new StringBuilder("abc");StringBuilder builder2 = new StringBuilder("abc");//false,StringBuilder中没有重写equals(),因此比较的还是地址System.out.println(builder1.equals(builder2));//false,因为s1与builder1的类型不同,若类型不同一定是falseSystem.out.println(s1.equals(builder1));   }}

3.包装类

  • java定义了8个包装类,目的是为了解决基本数据类型不能直接参与面向对象开发的问题,使得基本类型可以通过包装类对象的形式存在。
  • 包括8个:Integer、Character、Byte、Short、Long、Float、Double、Boolean。其中Character和Boolean是直接继承Obejct的,而其余6个包装类继承自java.lang.Number。
  • JDK1.5推出了一个新的特性:自动拆装箱,当编译器编译时若发现基本类型与包装类型相互赋值时,将会自动补充代码来完成转换工作,这个过程叫做自动拆装箱。
   public class IntegerDemo {public static void main(String[] args) {//演示包装类的创建:Integer i1 = new Integer(5); //创建了一个对象Integer i2 = new Integer(5); //创建了一个对象System.out.println(i1==i2); //false,因为==是比较地址Integer i3 = Integer.valueOf(500); //创建了一个对象Integer i4 = Integer.valueOf(500); //创建了一个对象System.out.println(i3==i4); //false,因为==是比较地址//Integer.valueOf()会复用-128到127范围内的数据,建议使用valueOf()方式创建Integer i5 = Integer.valueOf(5); //创建了一个对象Integer i6 = Integer.valueOf(5); //因为在-128到127之间,所以复用了i5对象System.out.println(i5==i6); //true//演示自动拆装箱-----底层自动补充代码完成了转换工作//触发自动装箱特性,会被编译为:Integer i = Integer.valueOf(5);Integer i = 5;//触发自动拆箱特性,会被编译为:int j = i.intValue();//intValue()的作用是:将包装类型转换为int类型int j = i;//演示包装类的常用操作://1)可以通过包装类来得到基本类型的取值范围:int max = Integer.MAX_VALUE; //获取int的最大值int min = Integer.MIN_VALUE; //获取int的最小值System.out.println("int的最大值为:"+max+",int的最小值为:"+min);long max1 = Long.MAX_VALUE; //获取long的最大值long min1 = Long.MIN_VALUE; //获取long的最小值System.out.println("long的最大值为:"+max1+",long的最小值为:"+min1);//2)包装类可以将字符串转换为对应的基本类型----必须掌握String str = "38";int age = Integer.parseInt(str); //前提str能正确表达一个int数据System.out.println(age); //38---int类型String s = "123.456";double price = Double.parseDouble(s); //前提s能正确表达一个double数据System.out.println(price); //123.456---double类型}}

4.补充

1.进制

1.1十进制的权:

   10的0次幂--------110的1次幂--------1010的2次幂--------10010的3次幂--------100010的4次幂--------10000

1.2二进制的权:

   2的0次幂---------12的1次幂---------22的2次幂---------42的3次幂---------82的4次幂---------162的5次幂---------322的6次幂---------64

1.3十六进制的权:

   16的0次幂--------116的1次幂--------1616的2次幂--------25616的3次幂--------409616的4次幂--------65536

1.4进制

   1)十进制:1.1)规则:逢十进一1.2)数字:0 1 2 3 4 5 6 7 8 91.3)基数:101.4)权:10000 1000 100 10 12)二进制:2.1)规则:逢二进一2.2)数字:0 12.3)基数:22.4)权:128 64 32 16 8 4 2 13)十六进制:3.1)规则:逢十六进一3.2)数字:0 1 2 3 4 5 6 7 8 9 a b c d e f3.3)基数:163.4)权:65536 4096 256 16 1

二进制转换为十进制规则(正的):所有为1的权相加

例如:    今天必须熟练记住最后4个权(8 4 2 1)

   权:    32 16 8 4 2 1二进制: 1  1  0 1 0 1十进制: 32+16+4+1---------53权:    32 16 8 4 2 1二进制: 0  0  1 1 0 1十进制: 8+4+1-------------13权:    32 16 8 4 2 1 二进制: 1  0  0 1 1 1十进制: 32+4+2+1----------39

1.5明日单词:

  1)binary:二进制

JSD-2204-API-正则-Object-包装类-Day18相关推荐

  1. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  2. Flask API TypeError: Object of type 'Response' is not JSON serializable

    Flask API TypeError: Object of type 'Response' is not JSON serializable 错误代码: session['image'] = str ...

  3. java api class_Java API:Object class

    Java API:Object class 首先简单的介绍一下Object类. java.lang.Object java.lang包使用的时候,不用显示导入,由编译器自动导入. Objec(即对象类 ...

  4. JAVA day13,14 API、Object类、日期时间类(long,Date,Calendar,DateFormat)、String类(字符串,可变长字符串)、正则表达式、包装类

    1.API API(Application Programming Interface),应⽤程序编程接⼝.Java API是⼀本程序员的"字 典",是JDK提供给我们使⽤的类的说 ...

  5. java学习--基础知识进阶第五天--API、 Object类 System类、日期相关类、包装类正则表达式...

    今日内容介绍 u  Object类 & System类 u  日期相关类 u  包装类&正则表达式 第1章 Object类 & System类 1.1 Object类 1.1. ...

  6. day04--java高级编程:API:Object、String,Buffer、包装类、日期、java比较器、BigInteger、进制、length区别,IO流,路径,序列化id,编码

    1 API 1.1 Api文档下载 1.API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口,一切可以调用的东西都是API. ...

  7. Java的API及Object类、String类、字符串缓存区

    Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Object:Object类是Java语言中的根类,即所有类的父类. equ ...

  8. TensorFlow Object Detection API Custom Object Hangs On

    TensorFlow Object Detection API Hangs On - Training and Evaluating using Custom Object Detector *The ...

  9. java常用API之Object

    java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, 那么默认则 ...

  10. 常用API,基本类型包装类,日期类,异常,集合进阶,IO流,多线程

    ​ 十九.常用API 19.1Math Math包含执行基本数字运算的方法 没有构造方法,如何使用类中的成员呢? 看类的成员是否都是静态的,如果是,通过类名就可以直接调用公 19.1.1 Math的常 ...

最新文章

  1. 微软 Mozilla高管评Safari Windows版
  2. 关于eclipse的实用技巧
  3. 用Dreamweaver+ASP实现分页技术的参考
  4. “是男人就下100层”
  5. Spring--事务处理编程
  6. 自然数之和(leetcode 167)
  7. 零基础入门实践目标检测项目
  8. Android热修复升级探索——代码修复冷启动方案 1
  9. windows下svn server的安装和配置
  10. matlab simulink单相桥式逆变电路
  11. RK平台RAM和ROM容量计算
  12. 技术人如何自我成长?
  13. linux同步两台mysql数据,Mysql入门MySQL 数据库两台主机同步实战(linux)
  14. springcloud为什么关闭了bus还是会连接mq
  15. 条码扫描器的安装方法与使用注意事项
  16. Property 'X' not found on type entity.Customer错误原因分析
  17. JAVA——JSch
  18. 计算机基础知识填空题和选择题,计算机基础知识题库选择题(参考).doc
  19. 【Kubernetes】K8s集群operator模式安装minio
  20. uM计算机组成原理,计算机组成原理_课程设计报告.doc

热门文章

  1. 如何为项目起一个好名字
  2. 进阶篇:如何优化网站提升访问速度
  3. MFC创建处理中进度条,循环滚动进度条的方法
  4. 半小时拿下Python数据处理之Matplotlib篇
  5. python无法启动此程序丢失zlib.dll_关于winserver2012运行c++程序缺少dll的理由
  6. 招投标基本流程(不包含资格预审)
  7. 新的Symbian OS 9 可执行文件格式(E32Image)
  8. python私活平台_【Python兼职】,Python开发接单接私活,Python程序员外包平台-程序员客栈...
  9. TQ2440开发板学习纪实(5)--- 设置UART串口,输出Hello World!
  10. 计算机设备耗材管理制度,关于国税局计算机耗材管理办法