- 正则表达式
- 日期相关类
- 异常概念
- 异常处理的两种方式
- 自定义异常
回顾:
- 常用类:别人设计好的,直接可以使用·
- 字符串的类:
-
- String:不可以修改的字符串
- 底层是一个使用final修饰的字节数组
- StringBuider:可以修改的字符串(线程不完全)
- StringBuffer:可以修改的字符串(线程安全)
- Java中将一个数据转为字符串的方式 :+ valueOf +toString
-
- 它们的运算效率:toString > valieOf > +
- StringBuider:可以修改的字符串
-
- 补充:
- StringBiuder:可以看作是一个容器,创建后里面的内容是可变的
- 作用:提高字符串的操作效率
- StringBuilder的构造方法:
方法名 | 说明 |
public StringBuilder() | 创建一个空白可变字符字符串对象,不含有任何内容 |
public StringBuiuder(String str) | 根据字符串的内容,来创建可变字符串对象 |
-
- 底层是一个字节数组,默认长度16字节
- 如果放入的字符串方超过了默认的长度,底层数组会扩容:扩容的长度是原来数组长度的2倍+2
- 常用方法:
-
-
- append():在StringBuilder的后面追加(支持链式(sb.append("你好").append("呵呵")........)开发)
- capacity():返回容量(数组长度)
- delete(int start ,int end):删除指定范围的值;
- deleteCharAt(int index):删除指定下标的值;
- insert(int offset,float f ):在指定位置插入数据
- revertse():翻转字符串
- setCharAt(int index,char ch):在指定位置修改值
- trimToSize():将多余的容量清除
-
- StringBuffer
- String
-
- 当使用双引号直接赋值时,系统会检查字符串在串池中是否存在
-
-
- 存在:复用原来的(好处是节约空间)不存在:创建新的
-
-
- 如果是new出来的,会在堆内存中开辟一个新的空间,不是复用,内存地址和直接复制的地址是不同的
- String StringBuider StringBuff 的使用场景
-
- 字符串不改变用String
- 需要改变对线程没有要求StringBuilder
- 需要改变对线程有要求StringBuffer
- == 号比较的原理
-
-
- 基本数据类型:比较多是数据值
-
int a = 10;
int b = 20;
a == b ;false
-
-
- 引用数据类型:比较的是地址值
-
String a = new String("abc");
String b = new String("abc");
a == b; false
-
- 字符串比较
-
-
- 方法:比较内容 equals(要比较的字符串)区分大小写,返回值:boolean
- 方法:equalsIgonreCase(比较的字符串) 比较内容(不区分大小写,只能是英文),返回值:boolean :
-
- 拼接的方式
-
- +
- append( ) 性能更好
一、正则表达式【了解】
1.概念:
- 就是表示某些数据的一个特殊字符串
2.语法:"[字符]"
- "[0-9]":任意的一个数字
- "[a-z]":任意一个小写字母
- "[A-Z]":任意一个大写字母
- "[a-zA-Z]":任意一个字母
- "[\u4e00-\u9fa5]":任意一个汉字
- "[你我他]":特定的一个字符
- 使用转义符表示
- "[\d]":任意的一个数字
- "[\D]":任意的一个字母
- "[\w]":任意一个字母 或 字母_
- "[\W]": [\s]:空格
3.表示个数
"[0-9]"
[\d]{个数}:
[\d]{n}:表示n个数字
[\d]{n,m}:表示最少n个最多m个
[\d]{n,}表示最少n个,最多不限制
使用特定的符号表示个数
?:表示 0个 或 1 个
*:表示 0 个 或 多个
+:表示 1个 或 多个
4.特殊字符的使用
^[]:以[]里的内容开始
^[a-zA-Z]:以字母开头
[^]:除了[]里面的内容都可以
[^a-z]:除了小写字母以外都可以
[]$:以[]里面的内容结尾
5.支持正则表达式的方法
- matches(String regex):判断一个字符串是否满足定义正则
- replaceAll(String regex,String replacement):替换所有字符串
- replaceFirst(String regex String replacement):替换第一个
- split(String regex)
二、日期相关类【掌握】
- Date:表示某一个瞬间的时间 date:2024-03-19 16:32:24,由于Date显示的格式不符合中国人的习惯
-
- Date d = new Date() :获取当前时间
- Date d = new Date(4124123131212L) :将传入的毫秒数转为日期
- SimpleDateFormat:格式化日期的类
-
- y 年(yyyy)
- MM:月份
- dd: 月里面的天数(号数)
- HH:小时,0-23
- hh:1-12
- mm:分钟
- ss:秒
- 格式化日期的对象
-
-
- nwe SimpleDateFormat(字符串的模板:“yyyy-MM-dd HH:mm:ss”)
-
-
- 格式化日期
-
-
- format();
-
-
- 第二个作用:将字符串表示日期转换为Date
- Date xx = xx.parse("2023/3/2 11时22分33秒")
- Calendar:日期类,进行时间的加减操作
-
- 1.创建对象:通过调用getInstance()来创建的
-
-
- Calendar cal = Calendar.getInstance()
-
-
- 常用的常量:
-
-
- YEAR:表示年字段【属性】
- MONTH:表示月份的字段
- DAY_OF_MONTH:表示月的第几天字段
- DAY_OF_WEEK:表示第几周字段
- HOUR:时钟字段
- MINUTE:分钟字段
- SECOND:秒的字段
-
-
- 常用的方法:
-
-
- add(字段,值):对某个字段进行加减,值为正数为加,值为负就是减
- get(字段):获取字段的值
- set(字段):设置字段的值(为某个字段重新赋值)
- getTime:将Calendar对象转为Date类型对象
- setTime(Date):将日期设置为指定的日期
-
三、biginteger&类bigDecimal
错误情况:NumberFormatException 数字格式不正确
- biginteger 类:表示一个位数不定的整数类
-
- 表示一个整数的范围可以超过long类型
- 创建对象的方式:
-
-
- BigInteger(String val),纯数字的字符串
- 例:
BigInteger b1 = new BigInteger("12412412514125214");
- 例:
BigInteger b2 = new BigInteger("1");
-
-
- 常用方法:+ - * / %
- add 加法 (返回的还是BigInteger类型的值):BigInteger sum = bi.add(b2);
- subtcat 减法:b1.subtcat(b2);
- multiply 乘法:b1.multiply(b2);
- divide 除法:b1.divide(b2);
- remainder 求模
- bigDecimal类:表示一个小数点有效位不定的
-
- 创建对象:BigDecimal(String val),val正常小数
- 常用的常量:
-
-
- ROUND_CEILNG:向上进位
- ROUND_FLOOR:向下舍去
- ROUND_HALF_EVEN:判断向上还是向下
-
-
- 创建bigDecimal对象:和biginteger一样
- 常用的方法,+,-,*,/,%
- 加法:b1.add(b2)
- 减法:b1.subtact(b2)
- 乘法:b1.multply(b2)
- 除法:b1.divide(b2):小数位太多没办法确定,需要指定保存的小数位数,的时候会出现ArithmeticException 算数位异常;
- 求模:b1.divide(b2)