正则表达式和异常

java和js的编写格式不一样,java中需要转义,js中不需要。
正则表达式,是一个字符串,由一些特殊的字符组成,特殊的字符成为正则元字符。

正则元字符
x 代表字符本身x; 单独写(a 表示a)。
\ 转义字符:\ 一个\,.一个.
\r\n 换行 , \t 制表位 tab。

1. 用于匹配特定字符的元字符
[] :用来匹配括号中的任何一个字符,[abc] 匹配其中一个;
[^] : 用来匹配括号字符之外的字符,[^abc] 匹配abc之外的;
[a-z]:用来匹配a到z中的任何一个;
[a-zA-Z]:匹配a到z,A到Z的任何一个;
[0-9]:匹配0到9的任何一个数字;
[a-zA-Z0-9]:匹配这么多中的一个;

预定义
\d == [0-9]
\D==[^0-9]
\w == [a-zA-Z0-9]
\W==[^\w]
. == 匹配任何字符

String regex = "\\w";
//js不需要转义

2. 用来限定字符数量的元字符
X? 可以匹配这个字符一次或者一次也没有
X* 0次或多次
X+ 1次或多次

X{n} 匹配n次
X{n,} n到正无穷
X{n,m} n到m

3. 用来限定字符边界的元字符
^ 表示已某个字符开头 ^ [a-z] a-z任意一个开头 [^a-z] 除了a-z的任何一个
$表示已某个字符结尾
\b表示字符的便捷 匹配不是单词字符的位置

正则表达式中的逻辑运算符
| 可以匹配 | 两侧中的任何一个正则表达式即可
表达式1 | 表达式2
() 将括号中的 作为一个整体
(ab){2} abab; ab{2} abb

使用正则表达式进行拆分
字符串对象 . split(正则表达式对象)

使用正则表达式进行替换
字符串对象 . replaceAll(正则表达式对象 想要替换的字符);

异常
在程序中 大致分两种 err :都是不可控的,系统错误,资源错误,通过程序改变不了,只能去避免。(内存溢出 系统级别控制或控制资源)
exception:有的可控,有的不可控。需要改变程序
1.运行时异常 RuntimeException 处理不处理都行
2.非运行时异常 必须处理。分两种:系统定义 IOExeception 自定义 系统提供的异常无法满足需要

发生异常
如果异常发生在线程中,线程停止
如果程序只有一个线程,程序停止

String str = null
str.isEmpty();
//会报NullPointerException

处理
抛出:当前方法不进行处理,丢给上一层进行处理,如果都没有处理1.在线程中,run方法处理;2.没有其他线程,交给main方法;3.给虚拟机

public void show() throws xxxException {}
public void show() throws xxxException , xxxException {}

捕获:在当前方法中对异常进行的处理
在当前方法中对异常进行的处理

try{
// may err codes
}catch(Exception e){
//发生异常进行处理的代码
}
try{
//可能发生异常的代码
}catch(Exception e1){

}catch(Exception e2){
}finally{
不管是否发生异常 一定会被执行
}

final 修饰符 finally 在异常处理时提供finally块来执行任何清除操作。
finalize 是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

自定义异常
1.根据需要,创建一个类
2.继承Exception
3.创建构造方法,调用父类的构造
4.调用自定义异常

throw 和 throws 区别

声明位置
throws 方法名后面
throw 方法里面
可以处理的异常的个数
throws 可以处理多个
throw 只能处理一个
处理者
throws 调用者
throw 方法内捕获
结果
throws 可能会发生某个异常 但是不一定发生
throw 一定会发生某个异常

猜你喜欢

转载自blog.csdn.net/weixin_43509023/article/details/84062117