Java正则表达式,Date类,Calendar类

正则表达式

正则表达式:正确规则的表达式,用来匹配字符串是否符合某个句法规则的单个字符串。
正则表达式的组成规则:
	字符:
		\\表示反斜线字符
		\n 表示换行符
		\r 表示回车符
	字符类:
		[abc] a、b、c 之间是或的关系,只要字符在这三个中就匹配成功
		[^abc]表示除了abc之外的任何字符
		[a-zA-Z]表示a-z和A-Z之内的字符(边界的字母也包括在内)
		[0-9]表示0-9中的字符
	预定义字符类:
		.任何字符,用\.表示.字符本身
		\d表示数字[0-9]
		\w表示单词字符[a-zA-Z_0-9]
		\s表示空格字符
	边界匹配器:
		^表示行的开头
		$表示行的结尾
		\b表示单词的边界
	数量词:
		?一次或一次也没有
		*表示零次或多次(大于或等于一次)
		+表示一次或多次
		{n}表示恰好n次
		{n,}表示至少n次
		{n,m}表示出现次数在n次与m次之间
正则表达式的判断功能
	String类功能:public boolean matches(String regex)
	判断字符串是否与正则表达式的规则匹配
public static void main(String[] args) {
    String regex="^[0-9]+[a-z]*$";
    String s="12gdgz";
    System.out.println(s.matches(regex));
}
正则表达式的切割功能
	String类的功能:public String[] split(String regex)
	将字符串以正则表达式的规则切割
public static void main(String[] args) {
        String regex="\\s+";
        String s="ad dasd  dad dassd  dasd ";
        String[] strings=s.split(regex);
//        for (String string:strings){
//            System.out.println(string);
//        }
        for (int i = 0; i <strings.length ; i++) {
            System.out.println(strings[i]);
        }
    }
正则表达式的替换功能
	String类的功能:public String replaceAll(String regex,String replacement)
public static void main(String[] args) {
    String regex=" ";
    String str="dad adsa d  ad";
    System.out.println(str.replaceAll(regex,"*"));
}
正则表达式的获取功能
	Pattern和Matcher的结合使用
		使用find()方法和group()方法,先用find()方法找到,再用group()方法获取
public static void main(String[] args) {
        String str="da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";
        Pattern p=Pattern.compile("\\b\\w{3}\\b");//创建正则表达式
        //创建匹配器
        Matcher m=p.matcher(str);
        //当字符串中匹配到正则表达式,就会被获取输出
       while (m.find()){
           System.out.println(m.group());
       }
    }

Math类

Math类包含用于执行基本数学运算的方法。
成员变量:(这两个变量是Math类已经创建的)
	public static final double E : 		自然底数
	public static final double PI:		圆周率
成员方法:
	public static int abs(int a)		取绝对值
public static void main(String[] args) {
    System.out.println(Math.abs(-3.15));
}
	public static double ceil(double a)	向上取整
public static void main(String[] args) {
    System.out.println(Math.ceil(2.15));//3.0
}
	public static double floor(double a)	向下取整
public static void main(String[] args) {
    System.out.println(Math.floor(2.15));//2.0
}
	public static int max(int a,int b)      获取最大值
public static void main(String[] args) {
    System.out.println(Math.max(15, 60));
}
	public static int min(int a, int b)	获取最小值
public static void main(String[] args) {
    System.out.println(Math.min(15, 60));
}
	public static double pow(double a,double b) 获取a的b次幂
public static void main(String[] args) {
    System.out.println(Math.pow(2, 3));
}
	public static double random()	获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static void main(String[] args) {
    System.out.println(Math.random());
}
	public static int round(float a) 四舍五入
public static void main(String[] args) {
    System.out.println(Math.round(0.2));
}
	public static double sqrt(double a)获取正平方根
public static void main(String[] args) {
    System.out.println(Math.sqrt(8));
}

Random类

用于产生随机数,若用相同的种子创建Random实例,对每个实例进行相同的方法调用序列,他们将生成并返回相同的数字序列
构造方法:
	public Random()			 没有给定种子,使用的是默认的(当前系统的毫秒值)
	public Random(long seed)		 给定一个long类型的种子,给定以后每一次生成的随机数是相同的
成员方法:
	public int nextInt()//没有参数 表示的随机数范围 是int类型的范围
	public int nextInt(int n)//可以指定一个随机数范围 
public static void main(String[] args) {
    Random r1=new Random(1212);//创建一个新的随机数生成器
    System.out.println(r1.nextInt(10));//因为用种子创建随机数生成器,所以每次得出的随机数都是相同的
}
	void nextBytes(byte[] bytes)  生成随机字节并将其置于用户提供的空的 byte 数组中。

System类

System中有用的方法:
	public static void gc()//调用垃圾回收器
	public static void exit(int status)//退出java虚拟机 0 为正常退出 非0为 异常退出
	public static long currentTimeMillis()//获取当前时间的毫秒值
public static void main(String[] args) {
    System.out.println(System.currentTimeMillis());
}

BigDecimal类

在运算的时候,float类型和double容易丢失精度,为了精确计算,Java提供了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)//scale 小数点后面保留几位
 public static void main(String[] args) {
        BigDecimal b=new BigDecimal("131616541564155");
        BigDecimal b1=new BigDecimal("10000000000");
        //scale表示保留几位小数,roundingMode表示小数的舍入模式,通常用字段表示
        System.out.println(b1.divide(b,5, RoundingMode.DOWN));
        //相乘
        System.out.println(b.multiply(b));//17322914013308940693980864025
        //相除
        System.out.println(b.divide(b));//1
        //相减
        System.out.println(b.subtract(b));//0
    }

Date类

Date表示特定的瞬间,精确到毫秒
构造方法:
	public Date():构造一个现在的日期对象
	public Date(long date)  //把一个long类型的毫秒值转换成一个日期对象
成员方法:
	public long getTime():	获取一个日期对象对象毫秒值
public static void main(String[] args) {
    Date date=new Date();
    System.out.println(date.getTime());
}
	public void setTime(long time):	给一个日期对象设置上指定的毫秒值
public static void main(String[] args) {
    Date date=new Date();
    date.setTime(1000*60*60);
    System.out.println(date.getTime());
}
Date与long的互相转换
	Date—>long
		通过调用getTime()方法
	long—>Date
		通过构造方法传入long类型的参数
		通过setTime(long time)

SimpleDateFormat类

SimpleDateFormat类可把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象
构造方法:
	 public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
	 public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
成员方法:
	 public String format(Date date): 	把一个日期对象格式化成一个字符串
	 public Date parse(String dateStr):	把一个日期字符串解析成一个日期对象 注意要以指定格式解析
public static void main(String[] args) {
    SimpleDateFormat s=new SimpleDateFormat();//创建日期与字符串转换对象
    Date d=new Date();//得到现在的日期对象
    System.out.println(d);//输出现在日期对象
    System.out.println(d.getTime());//输出现在时间的毫秒值
    System.out.println(s.format(d));//将日期对象转换成字符串格式输出
    SimpleDateFormat s1=new SimpleDateFormat("yyyy-MM:dd-mm分ss秒");//自定义输出字符串格式
    System.out.println(s1.format(d));//以自定义的字符串格式将日期对象转换输出
}
public static void main(String[] args) throws ParseException {
    SimpleDateFormat s1=new SimpleDateFormat();//默认格式日期转字符串对象
    SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//创建自定义日期与字符串转换对象
    Date d=s.parse("2020-05-12 21-32-12");//将自定义的日期按格式传入得到日期对象
    System.out.println(d.getTime());//输出该日期的毫秒值
    Date d1=new Date(d.getTime());
    System.out.println(s1.format(d1));//使用默认格式将该日期转换成字符串输出
}

Calendar类

	Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
成员方法:
	public static Calendar getInstance()	使用默认时区和语言环境获得一个日历对象
	public int get(int field)		获得给定日历字段对应的值 field通过Calendar提供的字段来拿
	public void add(int field,int amount)		根据日历的规则,为给定的日历字段添加或减去指定的时间量
	public final void set(int year,int month,int date)	设置日历时间 年月日
public static void main(String[] args){
    //Calendar是一个抽象类,不能new对象,可以通过其getInstance()方法获取其对象
    //Calendar类中的get方法需要输入相对应的字段,才能返回相对应的结果
    System.out.println(Calendar.getInstance().get(Calendar.YEAR));
    Calendar c1=Calendar.getInstance();
    //为YEAR这个字段值+1,减少则+(-1)
    c1.add(Calendar.YEAR,1);
    System.out.println(c1.get(Calendar.YEAR));
    c1.set(151,11,25);
    System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(Calendar.MONTH)+"月"+c1.get(Calendar.DAY_OF_MONTH)+"号");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值