java常用API方法二
正则表达式
规则:
- [abc] a、b 或 c
- [^abc] 任何字符,除了 a、b 或 c
- [a-zA-Z] a到 z 或 A到 Z
- [a-d[m-p]]: a - d 或者 m - p === [a-dm-p]并集
- [a-z && [def] ]d,e ,或者f,交集
- . 任何字符
- \d 数字:[0-9]
- \w 单词字符:[a-zA-Z_0-9]
// 检测手机号码
String reg = "1\\d{10}";
boolean s = "13652367482".matches(reg);
System.out.println(s); // true
// 正则替换
String reg1 = "\\d";
String s1 = "abc12c222df".replaceAll(reg1, "");
System.out.println(s1); //abccdf
// 正则分组
String reg2 = "(.)\\1(.)\\2";
System.out.println("快快乐乐".matches(reg2)); // true
String reg3 = "(..)\\1";
System.out.Println("快乐快乐".matches(reg3)); // true
Pattern 和 Matcher类:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
// 获取到正则表达式
Pattern p = Pattern.compile("a*b");
// 获取匹配器
Matcher m = p.matcher("aaaaaab");
// 获取匹配结果
boolean b = m.matches();
System.out.println(b); //true
把一个字符串中的手机号码获取出来
public static void main(String[] args){
String str = "爱我中华,13652367485aabbccdd13652368778,初始号码:15168329322";
// 获取到正则表达式
Pattern p = Pattern.compile("1\\d{10}");
// 获取匹配器
Matcher m = p.matcher(str);
// 找寻获取匹配结果
while(m.find()){
System.out.println(m.group()); // 13652367485 13652368778 15168329322
}
}
Math类,都是静态方法
* 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) 还一个min方法
* public static double pow(double a,double b) 指数 a ^ b
* public static double random() 生成[0.0,1.0)
* public static int round(float a) 参数为double的自学, 四舍五入
* public static double sqrt(double a)开平方。Math.sqrt(4) == 2
Random类,属于util包,需要导包
import java.util.Random;
Random r = new Random();
int i = r.nextInt(100); // 生成0-99的随机数
System.out.println(i);
System类
System 类包含一些有用的类字段和方法。它不能被实例化。
* public static void gc()
* public static void exit(int status)
* public static long currentTimeMillis()
* pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 拷贝数组
System.arrayCopy( arr1, 2, arr2, 5, 10);
//将arr1数组里从索引为2的元素开始, 复制到数组arr2里的索引为5的位置, 复制的元素个数为10个
BigInteger 类
要引入:import java.math.BigInteger;
import java.math.BigInteger;
BigInteger bi1 = new BigInteger("100");
BigInteger bi2 = new BigInteger("12");
System.out.println(bi1.add(bi2)); //112,
System.out.println(bi1); // 100
System.out.println(bi1.divide(bi2));// 100/12 == 8
BigDecimal类
由于在运算的时候,float类型和double很容易丢失精度,为了能精确的表示、计算浮点数,Java提供了BigDecimal.
System.out.println(2.0-1.1); // 0.8999999999999999
BigDecimal bd1 = new BigDecimal(2.0);
BigDecimal bd2 = new BigDecimal(1.1);
System.out.println(bd1.subtract(bd2));//0.899999999999999911182158029987476766109466552734375
//以上2种都不能正确表示,通过构造函数传递数字创建的大小数还不够精确,需要通过字符串
BigDecimal bd3 = new BigDecimal("2.0");
BigDecimal bd4 = new BigDecimal("1.1");
System.out.println(bd3.subtract(bd4)); // 0.9
// 或者也可以这样
BigDecimal bd5 = BigDecimal.valueOf(2.0);
BigDecimal bd6 = BigDecimal.valueOf(1.1);
System.out.println(bd5.subtract(bd6)); // 0.9
Date类
import java.util.Date;
/*
* A:Date类的概述
* 类 Date 表示特定的瞬间,精确到毫秒。
* B:构造方法
* public Date()
* public Date(long date)
* C:成员方法
* public long getTime()
* public void setTime(long time)
*/
Date d1 = new Date();
System.out.println(d1); // Fri Nov 23 14:42:30 CST 2018
System.out.println(d1.getTime()); // 获取毫秒值
System.out.println(System.currentTimeMillis()); // 通过方法获取时间毫秒值
Date d2 = new Date(0); //得到1970年01.01 00:00
d2.setTime(1000); //可以设置时间
SimpleDateFormat类
DateFormat 是日期/时间格式化子类的抽象类,我们使用其子类SimpleDateFormat
import java.text.ParseException;
import java.text.SimpleDateFormat;
/*
* B:SimpleDateFormat构造方法
* public SimpleDateFormat()
* public SimpleDateFormat(String pattern)
* C:成员方法
* public final String format(Date date)
* public Date parse(String source)
*/
Date d1 = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
System.out.println(sdf.format(d1)); // 18-11-23 下午2:56
//SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); 2018年11月23日14:58:19
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //2018/11/23 14:59:30
System.out.println(sdf1.format(d1));
String str = "2000/11/23 14:55:00";
Date d = sdf1.parse(str); // 需要抛出异常 throws ParseException
Calendar类
Calendar 类是一个抽象类, Calendar.getInstance()
获取Calendar对象,再操作
import java.util.Calendar;
// 得到日历实例
Calendar c = Calendar.getInstance(); //父类引用指向子类对象
// 获取日历的一些东西
System.out.println(c.get(Calendar.YEAR)); // 2018
System.out.println(c.get(Calendar.MONTH)); // 10 月份要+1
System.out.println(c.get(Calendar.DAY_OF_MONTH)); // 23 日
System.out.println(c.get(Calendar.DAY_OF_WEEK)); // 6 周几,需要-1,因为国外是周天认为周一
/* public void add(int field,int amount)
* public final void set(int year,int month,int date)*/
c.add(Calendar.YEAR, 1); // 将日历的年份加1,要减1的话填 -1
System.out.println(c.get(Calendar.YEAR)); // 2019
c.set(2022,8,22); //设置日历年月日
System.out.println(c.get(Calendar.YEAR));// 2022
网友评论