Java基础学习day_08 正则表达式 常用类

正则表达式就是一个验证字符串格式是否满足要求的字符串,使用一个字符串匹配一组字符串,这个字符串就是正则表达式。
正则表达式的用途:
1.匹配
2.查找
3.拆分
4.替换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述匹配

//判断手机号
String str="1[^120]\\d{9}";
String phone="167483927374";
String phone1="17853333222";
System.out.println(str.matches(phone));
System.out.println(phone1.matches(str));
//答案
false
true

拆分

//拆分
System.out.println("-------拆分----------");
String word="hello, wo  shi laowang! How are          you?";
String[] arr=word.split("[ ,!?]+");
for (String s : arr) {
    System.out.println(s);
}
//答案
-------拆分----------
hello
wo
shi
laowang
How
are
you

//匹配的过程

System.out.println("--------Pattern----------");
//Pattern:正则表达式的编译形式
Pattern pattern=Pattern.compile("1[^120]\\d{9}");
//Matcher:匹配器类
Matcher matcher=pattern.matcher("17853322222");
//调用matches()方法
boolean b=matcher.matches();
System.out.println(b);

查找

//获取
System.out.println("----------获取------------");
String str1="我爱Java,java是世界上最厉害的语言,java真的香!!!";
Pattern pattern1=Pattern.compile("[jJ]ava");
Matcher matcher1 = pattern1.matcher(str1);
while (matcher1.find()){//寻找数据
    //group()获取找到的数据
    System.out.println(matcher1.group());
}
//答案
----------获取------------
Java
java
java

替换

//替换
System.out.println("----------替换----------------");
str1="我爱Java,java是世界上最厉害的语言,java真的香!!!";
String str2=str1.replaceAll("[jJ]ava", "php");
System.out.println(str2);
//答案
----------替换----------------
我爱php,php是世界上最厉害的语言,php真的香!!!

叠词处理

//叠词处理
System.out.println("叠词处理");
String str3="我我..我...我喜喜喜喜....欢欢欢欢...欢欢JJJJava";
String str4=str3.replaceAll("[.]","");
System.out.println(str4);
str4=str4.replaceAll("(.)\\1+", "$1");
System.out.println(str4);
//答案
叠词处理
我我我我喜喜喜喜欢欢欢欢欢欢JJJJava
我喜欢Java

BigDecimal
位置:java.math包中。
作用:精确计算浮点数。

除法divide
参数scale :指定精确到小数点后几位。
参数mode :指定小数部分的取舍模式,通常采用四舍五入的模式,一般取值为BigDecimal.ROUND_HALF_UP。

BigDecimal num1=new BigDecimal("1.4");//最好写成String
BigDecimal num2=new BigDecimal("0.5");
BigDecimal num3=new BigDecimal("0.9");
System.out.println(num1.subtract(num2).divide(num3).doubleValue());
//加法
BigDecimal num4=num1.add(num2);
System.out.println(num4);
//减法
BigDecimal num5=num2.subtract(num3);
System.out.println(num5);
//乘法
BigDecimal num6=num1.multiply(num2);
System.out.println(num6);
//除法
BigDecimal num7=num1.divide(num2);
System.out.println(num7);
BigDecimal num8=num1.divide(num3, 5, BigDecimal.ROUND_HALF_UP);//除不尽 第一个参数是除数,第二个参数,保留位数,第三个参数四舍五入
System.out.println(num8);

Date

(很多被弃用了)

//创建时间
Date date = new Date();
System.out.println(date.toString());
System.out.println(date.toLocaleString());

//获取昨天的时间
Date date1=new Date(date.getTime()-21*60*60*1000);
System.out.println(date1.toLocaleString());

//after before 判断在前在后
boolean b=date1.after(date);
System.out.println(b);
boolean b1=date1.before(date);
System.out.println(b1);

//compareTo  计算相差几天
int time = date.compareTo(date1);
System.out.println(time);
//答案
Thu Jul 30 19:57:09 CST 2020
2020-7-30 19:57:09
2020-7-29 22:57:09
false
true
1

Calendar
Calendar提供了获取或设置各种日历字段的方法。
protected Calendar() 构造方法为protected修饰,无法直接创建该对象。

扫描二维码关注公众号,回复: 11527087 查看本文章
Calendar calendar=Calendar.getInstance();//创建日历
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1);//0-11月
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));

//获得昨天的时间
Calendar calendar1=Calendar.getInstance();
calendar1.add(Calendar.DAY_OF_MONTH,-1);
System.out.println(calendar1.getTime().toLocaleString());//转换成Date输出
//获得上个月的今天
Calendar calendar2=Calendar.getInstance();
calendar2.set(2020, 5, 29, 20, 12);
System.out.println(calendar2.getTime().toLocaleString());
//after before
System.out.println(calendar2.before(calendar));
System.out.println(calendar2.after(calendar1));
//获得这个月的最大天数
System.out.println(calendar2.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(calendar1.getActualMaximum(Calendar.DAY_OF_MONTH));
//获得当前月的最小天数
System.out.println(calendar1.getActualMinimum(Calendar.DAY_OF_MONTH));
//获取月的最大天数
System.out.println(calendar1.getMaximum(Calendar.DAY_OF_MONTH));

Calendar和Date的转换
//Date----Calendar
Calendar instance = Calendar.getInstance();
instance.setTime(new Date());
//Calendar—Date
Date date = instance.getTime();

SimpleDateFormat

//date转文本
Date date=new Date();
System.out.println(date.toString());
SimpleDateFormat stf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String s = stf.format(date);
System.out.println(s);

//文本转date
String time="2020-03-15";
SimpleDateFormat date2=new SimpleDateFormat("yyyy-MM-dd");
Date pars = date2.parse(time);
System.out.println(pars.toString());

//答案
Thu Jul 30 15:51:07 CST 2020
2020/07/30 15:51:07
Sun Mar 15 12:03:30 CST 2020

Math
方法很多,根据api可以找到很多。Math.random()其实用的是Random类中的nextDouble()方法。
在这里插入图片描述

Random
此类的实例用于生成伪随机数流
若long种子确定,则在不同程序中,相同次数产生的随机数是相同的。
在这里插入图片描述

//创建两个随机对象
Random random1=new Random(1000);
Random random2=new Random(1000);
System.out.println(random1.nextInt());
System.out.println(random2.nextInt());

System.out.println(random1.nextInt());
System.out.println(random2.nextInt());
//答案
-1244746321
-1244746321
1060493871
1060493871

System类
主要用于获取系统的属性数据和其他操作。
在这里插入图片描述
Runtime类
Runtime类:运行时类,只能通过getRuntime()获取实例
Runtime runtime=Runtime.getRuntime();
//4获取内存
System.out.println(“总内存:”+runtime.totalMemory()/1024/1024);
System.out.println(“空闲内存:”+runtime.freeMemory()/1024/1024);
System.out.println(“最大内存:”+runtime.maxMemory()/1024/1024);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_45196258/article/details/107685352