java基础 Day18(数学类,正则表达式,时间类)

一、Math类

Math 类提供了一序列基本数学运算和几何函数的方法。
Math类是final类,并且它的所有成员变量和成员方法都是静态的(标准的工具类)。

public static void main(String[] args) {

		System.out.println("求次方:"+ Math.pow(3, 2));//9.0
		System.out.println("求平方根:"+ Math.sqrt(9));//3.0
		System.out.println("求绝对值:"+ Math.abs(-1));//1
		System.out.println("向上取整:(天花板)"+Math.ceil(1.4));//2.0
		System.out.println("向下取整(地板):"+Math.floor(1.5));//1.0
		System.out.println("四舍五入:"+Math.round(1.5));//2
		System.out.println("求最大值:"+Math.max(10,20));//20
		System.out.println("求最小值:"+Math.min(10, 20));//10
		System.out.println("获取随机值0(包含)~1(不包含)的小数:"+Math.random());
		
		
		//需求:随机出1~100的数字
		int num = (int)(Math.random())*100+1;
		System.out.println(num);

二、正则表达式

含义:用来描述或者匹配一系列符合某个语句规则的字符串`

可以利用正则表达式替换

public static void main(String[] args) {
	
		String str = "小红13911111234 小绿15122221234";
		String regex = "(1\\d{2})(\\d{4})(\\d{4})";
		
		//根据正则表达式替换字符串-- $1保留正则表达式中第一组的内容
		String replaceAll = str.replaceAll(regex, "$1恭喜发财$3");
		System.out.println(replaceAll);//小红139恭喜发财1234 小绿151恭喜发财1234
		
	}

可以利用正则表达式判断是否匹配

public static void main(String[] args) {
	
		String str = "1445584980@qq.com";
		
		String regex = "\\d{5,11}@qq.com";
		
		boolean matches = str.matches(regex);
		//底层实现:
//		Pattern pattern = Pattern.compile(regex);//获取正则表达式对象
//		Matcher matcher = pattern.matcher(str);//通过正则表达式匹配字符串,把匹配的结果存放在Matcher对象中
//		boolean bool = matcher.matches();//获取是否完全匹配
		
		System.out.println(matches);
		
	}

可以利用正则表达式分隔字符串

public static void main(String[] args) {
	
		String str = "C:\\资源\\日韩\\波多野结衣.avi";
		
		String regex = ":?\\\\";//:?表示这个冒号要么有、要么没有 --> :\\		或 	\\
		
		String[] split = str.split(regex);
		//底层实现:
		//Pattern pattern = Pattern.compile(regex);//获取正则表达式对象
		//String[] split = pattern.split(str);
		
		for(String str1 : split){
			System.out.println(str1);
		}
	}

可以利用正则表达式做爬虫

public static void main(String[] args) {
	
		String str = "<img src='hhy/aaa.jpg'/><div><div/> <input type='image' src='submit.gif' /><img src='bbb.jpg'/>";
		
		String regex = "<img\\b[^>]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg)\\b)[^>]*>";
		
		//获取正则表达式对象
		Pattern pattern = Pattern.compile(regex);
		
		//获取匹配结果对象
		Matcher matcher = pattern.matcher(str);
		
		//遍历
		while(matcher.find()){//判断是否有匹配结果
			String string = matcher.group(2);
			System.out.println(string);
		}
	}

三、时间类

Date:日期类

public static void main(String[] args) {

		//Wed Apr 27 13:50:59 CST 2022
		//星期  月份   日期 时:分:秒	     时区  年份	
		Date date = new Date();
		System.out.println(date);
		
		//Thu Jan 01 08:00:01 CST 1970
		//自1970.1.1 0:0:0 + 时区 再往后推1000毫秒
		Date date1 = new Date(1000);
		System.out.println(date1);

SimpleDateFormat:格式化日期类

	public static void main(String[] args) throws ParseException {
		
		//创建格式化日期类的对象
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//大小写都可以
		
		//格式化日期类(Date对象 --> 字符串)
		String str = simpleDateFormat.format(new Date());
		System.out.println(str);
		
		//字符串->Date对象
		Date date = simpleDateFormat.parse("2011年12月3日 12:2:12");//抛异常
		System.out.println(date);//Sat Dec 03 12:02:12 CST 2011
	}

Calendar:日历类

public static void main(String[] args) {
	
		//获取日历类对象
		Calendar calendar = Calendar.getInstance();
		
		//获取单个日期数据
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH)+1;//月份+1
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		int hour = calendar.get(Calendar.HOUR);
		int minute = calendar.get(Calendar.MINUTE);
		int second = calendar.get(Calendar.SECOND);
		
		System.out.println(year);
		System.out.println(month);
		System.out.println(day);
		System.out.println(hour);
		System.out.println(minute);
		System.out.println(second);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值