1. 正则表达式
(1)字符:
- x 字符 x
- \\反斜线字符
- \n换行符
- \r回车符
(2)字符类:
- [abc] 字符类
- [^abc] 除了abc外的字符
- [a-zA-Z] 所有小写字母和大写字母,同理[0-9]为所有数字
(3)预定义字符类
- . 任何字符 .字符本身用\.表示
- \d 数字:[0-9] 通产使用时为\\d
- \D 非数字 [^0-9]
- \w 单词字符 [a-zA-Z_0-9]
(4)边界匹配器
- ^ 行的开头
- $ 行的结尾
- \b 单词边界 就是不是单词字符的地方
(5)数量词
- X? 一次或一次都没有
- X* 零次或多次
- X+ 一次或多次
- X{n} 恰好n次
- X{n,} 至少n次
- X{n,m} 至少n次,但是不超过m次
判断功能:String类的public boolean matches(String regex)
分割功能:public Strin[] split(String regex)
替换功能:public String replaceAll(String regex.String replacement)
获取功能:Pattern和Matcher类的使用
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
//定义字符串
String s = "da jia kai xin bu,wo shi hao hai zi";
//规则
String regex = "\\b\\w{3}\\b";
//把规则编译成模式对象
Pattern p = Pattern.compile(regex);
//通过模式对象得到匹配器对象
Matcher m = p.matcher(s);
//调用匹配器对象
//一定要先find,然后在group
while(m.find()) {
System.out.println(m.group());
}
}
}
2. math类
用于数学运算的类
成员变量:
(1)public static final double PI
(2)public static final double E
成员方法:
(1)public static int abs(int a):绝对值
(2)public static double ceil(double a):向上取整
(3)public static double floor(double a):向上取整
(4)public static int max(int a, int b):最大值
(5)public static double pow(double a, double b):a 的次幂
(6)public static double random():随机数
(7)public static int round(float a):四舍五入
(8)public static double sqrt(double a):正平方根
获取一个start到end之间的随机数
import java.util.Scanner;
public class MathDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入开始数:");
int start = sc.nextInt();
System.out.println("请输入结束数:");
int end = sc.nextInt();
int num = getRandom(start, end);
System.out.println(num);
}
public static int getRandom(int start, int end) {
int number = (int)(Math.random() * (end-start+1)) + start;
return number;
}
}
3. Random类
构造方法:public Random():没有给种子,用的是默认种子,是当前时间的毫秒值 ,另一种 形式是long seed做参数
给定种子后,每次得到的随机数是相同的
成员方法:
(1)public int nextInt():返回int范围内的随机数
(2)public int nextInt(int n):返回的是(0,n)范围内的随机数
4. 一些其他类和方法
(1)public static void gc():运行垃圾回收器
(2)public static void exit(int status):终止当前正在运行的java虚拟机。参数用作状态码,非0的状态码表示异常终止
(3)public static long currentTimeMills():返回以毫秒为单位的当前时间
(4)public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从指定位置开始到结束复制一个数组
5. BigInteger类
BigInteger(String val) 可以让超过Integer范围内的数据进行运算
(1)public BigInteger add(BigInteger val):加
(2)public BigInteger subtract(BigInteger val):减
(3)public BigInteger multiply(BigInteger val):乘
(4)public BigInteger divide(BigInteger val):除
(5)public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组
6. BidDecimal类
在运算的时候,float类型和double很容易丢失精度,BigDecimal能够精确的表示和计算浮点数
构造方法: public BigDecimal(String val)
BigDecimal的使用方法同基本一致,除了除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取
7.Date类
表示特定的时间,精确到毫秒
从Date到String为格式化,从String到Date为解析
构造方法:
(1)Date():根据当前的默认毫秒值创建日期对象
(2)Date(long date):根据给定的毫秒值创建日期对象
成员方法:
(1)public long getTime():获取时间,以毫秒为单位
(2)public void setTime(long time):设置时间
DateFormat:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat
8. Calendar
是一个抽象类,为操作日历字段和字段之间的转换提供了一些方法
成员方法:
(1)public static Calendar getInstance()
(2)public int get(int field) 返回给定日历字段的值,日历类中的每个日历字段都是静态的成员变量,并且是int类型
(3)public void add(int field,int amount) 根据给定的日历字段和对应的时间,来对当前的日历进行操作
(4)public final void set(int year,int month,int date) 设置当前日历的年月日
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
//获取当前的日历时间
Calendar c = Calendar.getInstance();
//获取年月日
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+date+"日");
//三年前的今天
c.add(Calendar.YEAR, -3);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
date = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+date+"日");
}
}
2020年10月12日
2017年10月12日