java-正则表达式Math类Random类System类BigInteger类BigDecimal类Date类DateFormat类Calendar类

目录

  • 正则表达式
    • 组成规则
    • 功能
  • Math类
  • Random类
  • System类
  • BigInteger类
  • BigDecimal类
  • Date类
  • DateFormat类
  • Calendar类

正则表达式

组成规则

  • 字符:

    • x : 字符x。举例: 'a’表示字符a
    • \\ : 反斜线字符。
    • \n : 新行(换行)符(’\u000A’)
    • \r : 回车符(’\u000D’)
  • 字符类

    • [abc] : a、b或c(简单类)
    • [^abc] : 任何字符,除了a,b,c(否定)
    • [a-zA-Z] : a到z或A到Z,两头的字母包括在内(范围)
    • [0-9] : 0到9的字符都包括
  • 预定义字符类

    • . : 任何字符。.字符本身怎么表示呢?\.
    • \d : 数字:[0-9]
    • \D : 非数字:[^0-9]
    • \w : 单词字符:[a-zA-Z_0-9]
      在正则表达式里面组成单词的东西必须由这些东西组成
    • \W : 非单词字符:[^\w]
  • 边界匹配器

    • ^ : 行的开头
    • $ : 行的结尾
    • \b : 单词边界:就是不是单词字符的地方
  • Greedy 数量词

    • X? : X, 一次或一次也没有
    • X* : X, 零次或多次
    • X+ : X, 一次或多次
    • X{n} : X,恰好n次
    • X{n,} : X,至少n次
    • X{n,m} : X, 至少n次,但是不超过m次

功能

  • 判断功能
  1. String类的matches方法
public boolean matches(String regex)
// 判断字符串是否符合正则表达式规则
  1. 模式和匹配器的基本使用
// 模式和匹配器的典型调用顺序
// 把正则表达式编译成模式对象
Pattern p = Pattern.compile("a*b");
// 通过模式对象得到匹配器对象,这个时候需要的是被匹配的字符串
Matcher m = p.matcher("aaaaab");
// 调用匹配器对象的功能
boolean b = m.matches();
System.out.println(b);
  • 分割功能
    String类的split方法
public String[] split(String regex)
// 根据给定正则表达式的匹配拆分此字符串
  • 替换功能
    String类的replaceAll方法
public String replaceAll(String regex,String replacement)
// 使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串
  • 获取功能
// 定义字符串,获取字符串中由三个字符组成的单词
String s = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";
// 规则
String regex = "\\b\\w{3}\\b";
// 把规则编译成模式对象
Pattern p = Pattern.compile(regex);
// 通过模式对象得到匹配器对象
Matcher m = p.matcher(s);
while (m.find()) {
	System.out.println(m.group());
}
// 注意:一定要先find()看存不存在,然后才能group()获取数据

Math类

  • 成员变量
public static final double PI
public static final double E
  • 成员方法
public static int abs(int a)
// 绝对值
public static double ceil(double a)
// 向上取整
public static double floor(double a)
// 向下取整
public static int max(int a,int b)
// 取最大值
public static double pow(double a,double b)
// a的b次幂
public static double random()
// 随机数:[0.0-1.0)
public static int round(float a)
// 四舍五入
public static double sqrt(double a)
// 返回a的正平方根

Random类

产生随机数的类

  • 构造方法
public Random()
// 没有给种子,用的是默认种子,是当前时间的毫秒值,每次得到的随机数不同
public Random(long seed)
// 给出指定的种子,给定种子后,每次得到的随机数是相同的
  • 成员方法
public int nextInt()
// 返回的是int范围内的随机数
public int nextInt(int n)
// 返回的是[0,n)范围内的随机数

System类

包含一些有用的类字段和方法。它不能被实例化

  • 方法
public static void gc()
// 运行垃圾回收器
public static void exit(int status)
// 终止当前正在运行的java虚拟机。参数用作状态码;根据惯例,非0的状态码表示异常终止
public static long currentTimeMillis()
// 返回以毫秒为单位的当前时间
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
// 从指定原数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

BigInteger类

可以让超过Integer范围内的数据进行运算

  • 构造方法
public BigInteger(String val)
  • 方法
public BigInteger add(BigInteger val) // 加
public BigInteger subtract(BigInteger val) // 减
public BigInteger multiply(BigInteger val) // 乘
public BigInteger divide(BigInteger val) // 除
public BigInteger[] divideAndRemainder(BigInteger val)
// 返回商和余数的数组

BigDecimal类

不可变的,任意精度的有符号十进制数,可以解决数据丢失问题

  • 构造方法
public BigDecimal(String val)
  • 方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)

Date类

  • 构造方法
public Date()
// 根据当前的默认毫秒值创建日期对象
public Date(long date)
// 根据给定的毫秒值创建日期对象
  • 方法
public long getTime()
// 获取时间,以毫秒为单位
public void setTime(long time)
// 设置时间
  • 转换
    • 从Date得到一个毫秒值
      • getTime()
    • 把一个毫秒值转换为Date
      • 构造方法
      • setTime(long time)

DateFormat类

可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用子类SimpleDateFormat

  • SimpleDateFormat构造方法
public SimpleDateFormat() // 默认模式
public SimpleDateFormat(String pattern) // 给定模式
/*
这个模式字符串该如何写呢?
通过查看API,我们就找到了对应的模式
  		年y
  		月M
  		日d
  		时H
  		分m
 		秒s
*/
  • 转换
    • Date – String(格式化)
      public final String format(Date date)
    // 创建日期对象
    Date d = new Date();
    // 给定模式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    String s = sdf.format(d);
    System.out.println(s);
    
    • String – Date(解析)
      public Date parse(String source)
    String str = "2008-08-08 12:12:12";
    // 在把一个字符串解析为日期的时候,请注意
    // 格式必须和给定的字符串格式匹配
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date dd = sdf2.parse(str);
    System.out.println(dd);
    
  • DateUtil工具类
public class DateUtil {
	private DateUtil() {

	}
	
	/**
	 * 这个方法的作用就是把日期转成一个字符串
	 * 
	 * @param d
	 *            被转换的日期对象
	 * @param format
	 *            传递过来的要被转换的格式
	 * @return 格式化后的字符串
	 */
	public static String dateToString(Date d, String format) {
		// SimpleDateFormat sdf = new SimpleDateFormat(format);
		// return sdf.format(d);
		return new SimpleDateFormat(format).format(d);
	}

	/**
	 * 这个方法的作用就是把一个字符串解析成一个日期对象
	 * 
	 * @param s
	 *            被解析的字符串
	 * @param format
	 *            传递过来要被转换的格式
	 * @return 解析后的日期对象
	 * @throws ParseException
	 */
	public static Date stringToDate(String s, String format) throws ParseException {
		return new SimpleDateFormat(format).parse(s);
	}
}

Calendar类

它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

  • 方法
public int get(int field)
// 返回给定日历字段的值
// 举例
// 其日历字段已由当前日期和时间初始化
Calendar rightNow = Calendar.getInstance(); // 子类对象
		
// 获取年
int year = rightNow.get(Calendar.YEAR);
// 获取月
int month = rightNow.get(Calendar.MONTH);
//获取日
int date = rightNow.get(Calendar.DATE);
		
System.out.println(year+"年"+month+"月"+date+"日");
public abstract void add(int field,int amount)
// 根据给定的日历字段和对应的时间,来对当前的日历进行操作。
// 上面get方法的例子中rightNow对象用这个方法举例
public final void set(int year,int month,int date)
// 设置当前日历的年月日

你可能感兴趣的:(java-正则表达式Math类Random类System类BigInteger类BigDecimal类Date类DateFormat类Calendar类)