2.Java加强-常用类+正则表达式

本文详细介绍了Java中的字符串操作(String,StringBuilder,StringBuffer),日期处理(Date,SimpleDateFormat,Calendar),以及异常处理(自定义异常),并对比了BigInteger和BigDecimal的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 正则表达式
  • 日期相关类
  • 异常概念
  • 异常处理的两种方式
  • 自定义异常

回顾:

  • 常用类:别人设计好的,直接可以使用·
  • 字符串的类:
    • 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值