字符串本质是字节数组
捕获组
匹配一个字符串是否含有两个及以上的字符
捕获组可以看作一个字符操作
如果一个双引号内有多个左括号,从左括号开始数,\n表示引用编号为n的捕获数组,编号从1开始
// (A((BC)D(E))F)(G)
// \1 A((BC)D(E))F
// \2 (BC)D(E)
// \3 BC
// \4 E
// \5 G
(.)\1 (.)\2: \1表示的与(.)的内容相同,匹配的与第一个括号的内容相同。
(…)\1 :\1表示的与(…)的内容相同。
replaceAll
字符串名.replaceAll(“要替换的”,“替换成的”)
将字符串中所有字符查找并替换
split
字符串.split(“以什么作为分隔输出”)。经常用数组接收。
String[] newStr = str.split(“,”);
Math
Math.E
.PI
.abs()
.cbrt() 立方根
.sqrt() 平方根
.ceil() 向上取整 4.3–> 5.0 -4.3–>-4
.floor 向下取整
Math.round 四舍五入
.max(a,b) 找两数的最大值
.min(a,b)找两数的最小值
Math.pow(2,3) 2的3次方
BigDecimal
用于精确计算,要求参数以字符串形式传递,底层可以按位运算
BigDecimal bigDecimal1 = new BigDecimal("3.0");
BigDecimal bigDiciaml2 = new BigDecimal("2.99");//通过字符串传值
System.out.println(bigDecimal1.subtract(bigDiciaml2));
add 加
substract 减
multiply 乘
divide 除
BigInterger类
用于存储和计算非常大的整数
需要new
BigInteger bigInteger1 = new BigInteger("13212312312321312312123123");
BigInteger bigInteger2 = new BigInteger("13212312312321312312123123");
System.out.println(bigInteger2.multiply(bigInteger1));
DecimalFormat
new DecimalFormat(00.00),0表示占位符,表示一位数字,如果没有数字用数字0代替,0的位置必须显示数字,小数需要包含的数后面的数字如果是6及以上的向上进一位,如果是5及以下的不进位
new DecimalFormat(##00.00),#表示占位,如果这一位有数字则显示,如果#位没有数字则不显示,井号不出现在0之中
double a = 2.7771;
DecimalFormat decimalFormat = new DecimalFormat("#####.000000");
System.out.println(decimalFormat.format(a));
Date 类
SimpleDateFormat 是干什么的?
将输入格式固定:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd”)//有固定的输入格式,将日期格式化,固定输入的字符串格式
将字符串格式的str赋值转换为Date格式
Date date = simpleDateFormat.parse(str) ///
将Date格式的date转换为字符串String格式
String str = simpleDateFormat.format(date)
Date是什么格式?Date怎么也有对象?
Date类是一个代表时间的类
Date date1 = new Date(); // 调用无参数构造函数
// 获取当前时间
Date date = new Date();
System.out.println(date);
Calendar
如何创建一个Calendar对象?
Calender calender = Calender.getInstance(); //获取当前的时间并返回一个Calendar对象
calendar.setTime的作用?
calendar.setTime(date); //设置时间,date通常通过字符串转换得到
calender.get(Calender.WEEK_OF_MONTH
Calender.DAY_OF_WEEK
Calender.MINUTE······) //获取一个月的第几周,或者一周的第几天
DAY_OF_WEEK显示的少一天是因为外国从星期日开始算
Calendar.(点)后面能加什么?
包装类
定义了8个包装类,解决了基本类型不能直接面向对象开发的问题,使基本类型可以通过包装类的形式存在
包含 Integer,Character,Byte,Short,Long,Float,Double,Boolean
Character和Boolean直接继承自Object类,其余6个包装类继承自Number类
Integer i1 = new Integer(5);//new的对象的地址值一定不同
Integer i2 = Integer.valueOf(5);//(-128-127)会复用
包装类.valueOf(5) : 将基本类型转为包装类型。会复用一个字节(-128—127)范围内的数据,地址值都一样
int i = 包装类型变量.intValue() //将包装类转换为基本类型
包装类的作用
1.可以通过包装类来获取基本类型的取值范围:
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
long max1 = Long.MAX_VALUE;
long min1 = Long.MIN_VALUE;
2.将基本类型的字符串(String)类型转换成对应的基本类型(int /double)
String—>int\double
转换成的格式必须和String中的格式相同,否则报错
包装类.parseXXX()
String s1 = "39";
int age = Integer.parseInt(s1);
String s2 = "123.4546";
double price = Double.parseDouble(s2);
自动拆箱装箱
当基本类型与包装类型之间相互赋值,则自动补齐代码进行操作
Integer i = 6;//自动装箱
int j= i;//自动拆箱