正则表达式:
boolean mathes(String regex)
字符类
写法 | 规则 |
---|---|
[abc] | a、b、c其中一个 |
^abc | 任何字符除了(abc) |
a-zA-Z | a到z或A到Z两头字母在 |
[0-9] | 0到9 |
[a-zA-Z0-9] | a到z或A到Z或0-9 |
. | 任何字符 |
\d | 数字[0-9] |
\D | 非数字[^0-9] |
\w | 单词字符[a-zA-Z0-9] |
\W | 非单词字符[^a-zA-Z0-9] |
X{?} | 一次或者一次没有 |
X{*} | 零次或多次 |
X{+} | 一次或多次 |
X{n} | 恰好n次 |
X{n.} | 至少n次 |
x{n,m} | 至少n次但是不超过m次 |
X=字符类如[0-9]{9} 0-9:9位
例: 手机号只能1开头第二位3-8任意一个第三位全数字长11位
String telRegex=“1[345678][0-9]{9}”
邮件地址@前面是数字字母下划线@后面是字母和.
=“a-zA-Z0-9+@([a-z]+\.[a-z]+)+”
Math
Math.abs(数字)绝对值
Math.ceil(向上取整)
Math.floor(double a)向下取整
Math.round(float a)四舍五入int
BigInteger:大数计算
BigInteger add=b1.add(b2) b1+b2
b1.subtract(b2) b1-b2
b1.multiply(b2) b1*b2
b1.divide(b2)整除取商
BigDecimal小数精确计算
b1.add(b2) 加法
subtract 减法
multiply 乘法
b1.divide(b2,2,BigDecimal)
b1/2保留两位ROUND_DOWN
String 转基本类型
int i=Integer.parseInt(“10”); String转int
Double.parseDouble(“10.2”)string转double
Boolean.parseBoolean(“true”); Boolean转string
String.valueOf(10);String转int
Integer inte=500;java自动转型 引用类型不能直接赋值,Java后台做了自动转换new(500)
byte类型在Integer中可以直接用比较运算符比较
Integer.compare 比较(10,20)10<20返回-1 大于返回1
异常捕获:
如果出现异常java会停止运行所以不能让java虚拟机捕获到异常我们自己捕获异常并输出程序则会继续运行,
try{//抛出去先给main方法main在方法里找捕获代码没有找到就再往外抛给java虚拟机则会停止运行抛出错误代码
}catch(捕获错误-代码匹配了才会捕捉){
代码
}finally{
只要进入了try则一定会运行finally
}
throw抛出异常 格式:throw new 异常类名(参数)
throws捕获异常 格式:修饰符 返回值类型 方法名(参数)throw 异常1,异常2{}
两种异常:
1.编译异常:在IDEA写的时候就会报错自定义类继承Exception
2.运行时异常:继承RuntimeException
自定义异常:
public class RegisterException exends Exception{
//空参构造 public RegisterException(){}
//有参构造 public RegisterException(){
super(message);//使用父类报错
}
}
打印异常的三种方法:
FileNotFound Exception e e.getMessag()获取异常简短信息只有传入的那几个字
e.toString()获取异常的简短信息
e.printStackTrace()直接打印详细信息
异常后的方法重写注意事项:
1.父类方法抛异常子类方法不能抛异常?
可以不抛出
也可以抛出,但是抛出的异常必须和父类抛出的相同,或子类异常
2.父类方法不抛异常子类方法能不能抛异常
子类重写方法不能抛异常,如果子类方法有异常用try catch抛出