java生日正则表达式_Java编程基础15——正则表达式常用工具类

1_正则表达式的概述和简单使用

A:正则表达式

是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。

作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的

B:案例演示

需求:校验qq号码.

1:要求必须是5-15位数字

2:0不能开头

3:必须都是数字

a:非正则表达式实现

b:正则表达式实现

2_字符类演示

A:字符类

[abc] a、b 或 c(简单类)

[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

[0-9] 0到9的字符都包括

3_预定义字符类演示

A:预定义字符类

. 任何字符。

d 数字:[0-9]

w 单词字符:[a-zA-Z_0-9]

4_数量词

A:Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好 n 次

X{n,} X,至少 n 次

X{n,m} X,至少 n 次,但是不超过 m 次

5_正则表达式的分割功能

A:正则表达式的分割功能

String类的功能:public String[] split(String regex)

B:案例演示

正则表达式的分割功能

6_把给定字符串中的数字排序

A:案例演示

需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”

7_正则表达式的替换功能

A:正则表达式的替换功能

String类的功能:public String replaceAll(String regex,String replacement)

B:案例演示

正则表达式的替换功能

8_正则表达式的分组功能

A:正则表达式的分组功能

捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:

1 ((A)(B(C)))

2 (A

3 (B(C))

4 (C)

组零始终代表整个表达式。

B:案例演示

a:切割

需求:请按照叠词切割: "sdqqfgkkkhjppppkl";

b:替换

需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程

将字符串还原成:“我要学编程”。

9_Pattern和Matcher的概述

A:Pattern和Matcher的概述

B:模式和匹配器的典型调用顺序

通过JDK提供的API,查看Pattern类的说明

典型的调用顺序是

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaab");

boolean b = m.matches();

10_正则表达式的获取功能

A:正则表达式的获取功能

Pattern和Matcher的结合使用

B:案例演示

需求:把一个字符串中的手机号码获取出来

11_Math类概述和方法使用

A:Math类概述

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

B:成员方法

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)

public static double random()

public static int round(float a) 参数为double的自学

public static double sqrt(double a)

public static void main(String[] args) {

System.out.println(Math.PI);

System.out.println(Math.abs(-10)); //取绝对值

System.out.println(Math.ceil(12.01));//获取向上取整,但是结果是一个double值

System.out.println(Math.ceil(12.99));

System.out.println(Math.floor(12.01));//获取向下取整,但是结果也是一个double值

System.out.println(Math.floor(12.99));

System.out.println(Math.max(20, 30));//取最大值

System.out.println(Math.min(20, 30));//取最小值

System.out.println(Math.pow(2, 3)); //2.0的3次方

System.out.println(Math.random());//生成0.0到1.0之间的所有小数,包括0.0,不包括1.0

System.out.println(Math.round(12.3f));//四舍五入

System.out.println(Math.sqrt(2));//开平方

}

12_Random类的概述和方法使用

A:Random类的概述

此类用于产生随机数如果用相同的种子创建两个 Random 实例,

则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

B:构造方法

public Random()

public Random(long seed)

C:成员方法

public int nextInt()

public int nextInt(int n)(重点掌握)

import java.util.Random;

public class Other_Random_2 {

public static void main(String[] args) {

Random r = new Random();

/*int x = r.nextInt();

System.out.println(x);

for (int i = 0; i < 10; i++) {

System.out.println(r.nextInt());

System.out.println(r.nextInt(100));

}

*/

Random r2 = new Random(1000);

int a = r2.nextInt();

int b = r2.nextInt();

System.out.println(a);

System.out.println(b);

}

}

13_System类的概述和方法使用

A:System类的概述

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

B:成员方法

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)

C:案例演示

System类的成员方法使用

public class Other_System_3 {

public static void main(String[] args) {

// demo1();

// demo2();

// demo3();

demo4();

}

private static void demo4() {

int[] src = {11,22,33,44,55,66,77,88,99};

int[] dest = new int[10];

for (int i = 0; i < dest.length; i++) {

System.out.println(dest[i]);

}

System.out.println("-----------------------");

System.arraycopy(src, 0, dest, 0, src.length); //将数组内容拷贝

for (int i = 0; i < dest.length; i++) {

System.out.println(dest[i]);

}

}

private static void demo3() {

long start = System.currentTimeMillis();

for (int i = 0; i < 1000; i++) {

System.out.println("*");

}

long end = System.currentTimeMillis(); //获取当前时间的毫秒值

System.out.println(end - start);

}

private static void demo2() {

System.exit(0); //非0状态是异常终止,退出jvm

System.out.println("1111111");

}

private static void demo1() {

for (int i = 0; i < 100; i++) {

new Demo();

System.gc(); //运行垃圾回收器

}

}

}

class Demo { //在一个源文件中不允许定义两个用public修饰的类

public void finalize() {

System.out.println("被清扫了");

}

}

14_BigInteger类的概述和方法使用

A:BigInteger的概述

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

B:构造方法

public BigInteger(String val)

C:成员方法

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)

import java.math.BigInteger;

public class Other_BigInteger_4 {

public static void main(String[] args) {

// long num = 155565456465465465545;

// String s = "155565456465465465545";

BigInteger bi1 = new BigInteger("100");

BigInteger bi2 = new BigInteger("3");

System.out.println(bi1.add(bi2)); // +

System.out.println(bi1.subtract(bi2)); // -

System.out.println(bi1.multiply(bi2)); // x

System.out.println(bi1.divide(bi2)); // /

BigInteger[] arr = bi1.divideAndRemainder(bi2);

for (int i = 0; i < arr.length; i++) {

System.out.println(arr[i]);

}

}

}

15_BigDecimal类的概述和方法使用

A:BigDecimal的概述

由于在运算的时候,float类型和double很容易丢失精度,演示案例。

所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

不可变的、任意精度的有符号十进制数。

B:构造方法

public BigDecimal(String val)

C:成员方法

public BigDecimal add(BigDecimal augend)

public BigDecimal subtract(BigDecimal subtrahend)

public BigDecimal multiply(BigDecimal multiplicand)

public BigDecimal divide(BigDecimal divisor)

D:案例演示

BigDecimal类的构造方法和成员方法使用

import java.math.BigDecimal;

public class Other_BigDecimal_5 {

public static void main(String[] args) {

// System.out.println(2.0 - 1.1);

/* BigDecimal bd1 = new BigDecimal(2.0);//不推荐,还是不够精确

BigDecimal bd2 = new BigDecimal(1.1);

System.out.println(bd1.subtract(bd2));*/

/* BigDecimal bd1 = new BigDecimal("2.0");//通过构造中传入字符串的方式,开发时推荐

BigDecimal bd2 = new BigDecimal("1.1");

System.out.println(bd1.subtract(bd2));*/

BigDecimal bd1 = BigDecimal.valueOf(2.0);//这种方法开发中也是推荐的

BigDecimal bd2 = BigDecimal.valueOf(1.1);

System.out.println(bd1.subtract(bd2));

}

}

16_Date类的概述和方法使用*

A:Date类的概述

类 Date 表示特定的瞬间,精确到毫秒。

B:构造方法

public Date()

public Date(long date)

C:成员方法

public long getTime()

public void setTime(long time)

import java.util.Date;

public class Other_6_Date {

public static void main(String[] args) {

// demo1();

// demo2();

Date d1 = new Date();

d1.setTime(1000); //设置毫秒值,改变时间对象

System.out.println(d1);

}

private static void demo2() {

Date d1 = new Date();

System.out.println(d1.getTime()); //通过时间对象获取毫秒值

System.out.println(System.currentTimeMillis());//通过系统类的方法获取当前时间毫秒值

}

private static void demo1() {

Date d1 = new Date(); //没有传参数代表当前时间

System.out.println(d1);

Date d2 = new Date(0); //0代表Thu Jan 01 08:00:00 CST 1970

System.out.println(d2); //通过毫秒值创建时间对象

}

}

17_SimpleDateFormat类实现日期和字符串的相互转换*

A:DateFormat类的概述

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat

B:SimpleDateFormat构造方法

public SimpleDateFormat()

public SimpleDateFormat(String pattern)

C:成员方法

public final String format(Date date)

public Date parse(String source)

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Other_7_DateFormat {

public static void main(String[] args) throws ParseException {

// demo1();

// demo2();

//将时间字符串转换成日期对象

String str = "2000年08月08日 08:08:08";

SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日 HH:mm:ss");

Date d = sdf.parse(str); //将时间字符串转换成日期对象 Ctrl+1抛出异常

System.out.println(d);

}

private static void demo2() {

Date d = new Date(); //获取当前时间对象

SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日 HH:mm:ss"); //创建日期格式化类对象

System.out.println(sdf.format(d)); //将日期对象转换为字符串

}

private static void demo1() {

//DateFormat df = new DateFormat(); //是抽象类,不允许实例化

//DateFormat df = new SimpleDateFormat();

DateFormat df1 = DateFormat.getDateInstance(); //相当于父类引用指向子类对象,右边的方法返回一个子类

}

}

18_你来到这个世界多少天案例*

A:案例演示

需求:算一下你来到这个世界多少天?

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Other_8_test {

public static void main(String[] args) throws ParseException {

/* 分析

1.将生日字符串和今天字符串存在String类型的变量中

2.定义日期格式化对象

3.将日期字符串转换成日期对象

4.通过日期对象后期时间毫秒值

5.将两个时间毫秒值相减除以1000,再除以60,再除以60,再除以24得到天*/

//1

String birthday = "1998年12月12日";

String today = "2018年9月17日";

//2

SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日");

//3

Date d1 = sdf.parse(birthday);

Date d2 = sdf.parse(today);

//4

long time = d2.getTime() - d1.getTime();

//5

System.out.println(time / 1000 / 60 / 60 / 24 / 365);

}

}

19_Calendar类的概述和获取日期的方法*

A:Calendar类的概述

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

B:成员方法

public static Calendar getInstance()

public int get(int field)

import java.util.Calendar;

public class Other_Calendar_9 {

public static void main(String[] args) {

Calendar c = Calendar.getInstance(); //父类引用指向子类对象

// System.out.println(c);

System.out.println(c.get(Calendar.YEAR));//通过字段获取年

System.out.println(c.get(Calendar.MONDAY));//通过字段获取月,从0开始

System.out.println(c.get(Calendar.DAY_OF_MONTH));//获取日

System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一

System.out.println(c.get(Calendar.YEAR) + "年" + getNum(c.get(Calendar.MONTH) + 1) + "月" +

getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));

}

/*

将星期存储表中,进行查表

1.返回值类型String

2.参数列表int*/

public static String getWeek(int week) {

String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

return arr[week];

}

/* 将个位数字补0

1.返回值类型String

2.参数列表int num*/

public static String getNum(int num) {

/* if(num > 9) {

return "" + num;

}else {

return "0" + num;

}*/

return num > 9 ? "" + num : "0" + num;

}

}

20_Calendar类的add()和set()方法*

A:成员方法

public void add(int field,int amount)

public final void set(int year,int month,int date)

B:案例演示

Calendar类的成员方法使用

public static void main(String[] args) {

// demo1();

Calendar c = Calendar.getInstance(); //父类引用指向子类对象

c.add(Calendar.MONTH, -1); //对指定的字段进行加减操作

c.set(Calendar.YEAR, 2000); //修改指定字段

c.set(2000, 7, 18);

System.out.println(c.get(Calendar.YEAR) + "年" + getNum(c.get(Calendar.MONTH) + 1) + "月" +

getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));

}

21_如何获取任意年份是平年还是闰年*

A:案例演示

需求:键盘录入任意一个年份,判断该年是闰年还是平年

import java.util.Calendar;

import java.util.Scanner;

public class Other_10_test {

public static void main(String[] args) {

/* 分析

1.键盘录入年Scanner

2.创建Calendar c = Calendar.getInstance();

3.通过set方法设置为那一年的3月1日

4.将日向前减去1

5.判断日是多少天,如果是29天返回true,否则false*/

Scanner sc = new Scanner(System.in);

System.out.println("请输入年份,判断该年份是闰年还是平年:");

// int year = sc.nextInt();

String line = sc.nextLine(); //录入数字字符串

int year = Integer.parseInt(line); //将数字字符串转换成数字

Boolean b = getYear(year);

System.out.println(b);

}

private static Boolean getYear(int year) {

Calendar c = Calendar.getInstance();//第二步

c.set(year, 2, 1); //第三步,设置为那一年的3月1日

c.add(Calendar.DAY_OF_MONTH, -1);//将日向前减去1

return c.get(Calendar.DAY_OF_MONTH) == 29;//判断是否为29

}

}

abc ↩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsplumb拖线_基于jsplumb插件制作可拖拽、保存流程图、重绘保存后的流程图总结...

1.重点参考博文https://blog.csdn.net/j_bean/article/details/780926472.关键点总结1)实现可视区域图形画满后&#xff0c;拖动整个画布的效果a.最好不要给画图形的容器预设置很大的宽、高&#xff0c;这样遇到钻牛角尖的用户还是会将画布拖到边界。b.换个思维&#xff0c;拖动…

PP视频如何更改截图保存路径及图片类型

这篇文章主要说的是PP视频如何更改截图保存路径及图片类型&#xff0c;希望可以帮助大家。PP视频采用了先进的P2P流媒体播放技术&#xff0c;PP视频可以确保在大量用户同时观看节目的情况下&#xff0c;节目依然流畅清晰。PP视频是一个高品质的视频网站&#xff0c;PP视频依靠独…

win连接被远程计算机终止,windows系统远程连接后马上断开提示“远程计算机已结束连接”的解决方法...

原标题&#xff1a;windows系统远程连接后马上断开提示“远程计算机已结束连接”的解决方法此问题在远程系统是GHOST版的windowsxp和winserver2003时出现的比较普遍。现象描述&#xff1a;用windowsxp自带的“远程桌面”功能连接到另外一台windowsxp电脑时&#xff0c;在连接的…

搜狐视频怎么开启青少年模式

很多人都使用搜狐视频&#xff0c;播放器家园网小编给大家分享一下搜狐视频怎么开启青少年模式相关内容。搜狐视频播放器是一款深受广大用户欢迎的主流视频播放器软件&#xff0c;专注为用户提供在线视频播放的客户端软件&#xff0c;搜狐视频播放器为用户提供清晰、流畅、界面…

使用中断后不停止_乔丹体育公司构成侵权,为何又不判令彻底停止使用“乔丹”注册商标?法院解释来了...

2020年12月30日&#xff0c;上海二中院发布了迈克尔•乔丹姓名权纠纷案一审判决结果&#xff0c;引发社会各界广泛关注。现就大家关注的若干问题作如下释疑&#xff1a;1. 为何认定乔丹体育公司构成侵权乔丹体育公司是在明知迈克尔•乔丹具有较高知名度的情况下&#xff0c;仍然…

如何在家访问公司的文件服务器,企业的共享文件,该怎么高效管理?

原标题&#xff1a;企业的共享文件&#xff0c;该怎么高效管理&#xff1f;现在的企业基本上都有自己的文件服务器&#xff0c;并且会经常共享文件让局域网内用户访问。而企业的网络服务器共享文件是企业的无形资产和商业保密信息&#xff0c;员工也经常根据网络服务器来远程控…

roads 用户体验标准_全球领先技术加持,联发科 天玑1000+刷新5G用户体验新标准...

随着5G基站的一步步铺建&#xff0c;越来越多的地方都逐渐可以接收到5G信号了。这自然也催促着芯片厂商尽快推出全新的5G移动平台&#xff0c;比如骁龙的X55基带、华为的巴龙5000基带等。但在目前的环境下&#xff0c;尽管这些基带的加入让手机移动平台能够支持5G网络&#xff…

window系统服务器改名,微软:不会将 Windows Server 改名为 Microsoft Server 系统

原标题&#xff1a;微软&#xff1a;不会将 Windows Server 改名为 Microsoft Server 系统IT之家 4 月 18 日消息 外媒 MSPoweruser 报道&#xff0c;微软已经迅速行动&#xff0c;粉碎了一个传闻&#xff0c;此前有消息称&#xff0c;微软正计划将 Windows Server 更名为 Micr…

腾讯视频视频下载_如何下载腾讯视频

今天继续给大家分享腾讯视频方面的内容。一般来说vip会员可以提前点播热播剧&#xff0c;对于追剧党来说是非常好的&#xff0c;不过是否开通也要根据自己需求&#xff0c;毕竟价格也不低啊&#xff0c;而且还是有一些用户能够通过一些简单但不值得提倡的方法看遍全网vip资源电…

deebot扫地机器人使用_完美主义的双子座也选这款扫地机——小米米家扫地机器人使用心得...

赵女士是一枚85后&#xff0c;热爱生活、完美主义、中度洁癖。自从搬了新家后&#xff0c;赵女士一直想添置一台扫地机器人&#xff0c;一方面&#xff0c;孩子经常喜欢赤脚在家中玩耍&#xff0c;另一方面&#xff0c;白天上班晚上回来打扫卫生总显得有些心有余而力不足&#…

腾讯视频如何下载视频_腾讯视频如何做明星装扮

这篇文章主要说的是腾讯视频如何下载视频_腾讯视频如何做明星装扮&#xff0c;希望可以帮助大家。腾讯视频时刻为您推荐最新最火的视频&#xff0c;精彩不断随时观看。支持各种画质的下载&#xff0c;没网也能享受高视觉的享受&#xff0c;让生活的每一刻都不再枯燥!腾讯视频采…

路畅畅云固件升级教程_斐讯K2P MTK版简单几步刷入breed教程,附刷第三方固件方法...

教程适用于 K2P MTK版本(A1/A2)。教程转载自恩山1、检查路由固件版本&#xff0c;是否V22.8.5.189或V22.10.2.24&#xff0c;版本低于22.8.5.189就手动上传升级一下。2、下载辅助工具刷入breed。下载辅助工具&#xff0c;解压压缩文件到任意目录。解压后保留一下几个文件&#…

腾讯视频下载安装_如何上传视频到腾讯视频平台

播放器软件很多&#xff0c;本文小编给大家推荐腾讯视频。我们可以在腾讯视频播放器上&#xff0c;观看各种电视剧、电影、综艺节目等内容。里面的大部分视频都是免费的&#xff0c;部分独播大剧可能会存在vip收费的情况&#xff0c;这也是无法避免的。腾讯视频客户端是国内领先…

edtext 从右边开始输入 安卓_FreeRTOS 从入门到精通6--详解任务管理下(对比PLC,安卓)...

接着上一讲奔腾的心&#xff1a;FreeRTOS 从入门到精通5--详解任务管理上​zhuanlan.zhihu.com在这一讲中我将要介绍任务的运行模式&#xff0c;同时与可编程控制器&#xff08;PLC&#xff09;以及安卓系统的运行模式进行比较。我在德国读书时专业是嵌入式开发&#xff0c;工作…

礼物

礼物——大熊和小兔喜欢互送礼物&#xff0c;朋友总是这样。小兔给大熊送礼物有一个习惯—试试看。有一次&#xff0c;小兔送给大熊一本漫画书。 “哇&#xff0c;漫画书!”大熊马上接过书翻看起来。小老虎也围过来看&#xff0c;刚翻两页&#xff0c;小老虎就叫起来&#xff…

ps去水印教程_ps去水印教程,详细解析五种去水印的方法

平常我们从一些素材网站下载图片的时候&#xff0c;不免会带上一些水印&#xff0c;使图片的整体美感下降不少&#xff0c;今天教同学们五种去除水印的方法&#xff0c;相信你学习以后&#xff0c;有所收获&#xff0c;遇到喜欢的图片可以把不想要的水印去掉&#xff0c;不过水…

腾讯视频真实下载地址_腾讯视频如何多倍速播放视频

腾讯视频官网版是一款专注视频播放的客户端软件&#xff0c;您可运行腾讯视频&#xff0c;在线享受奇艺网站内全部免费高清正版视频。腾讯视频视频播放器内容丰富&#xff0c;影视更新快&#xff0c;包含腾讯视频所有的视频内容&#xff0c;在线享受腾讯视频站内全部免费高清正…

excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)

聊聊 Python 数据处理全家桶(Memca 篇)点击上方“AirPython”&#xff0c;选择“加为星标”第一时间关注 Python 技术干货&#xff01;1. 前言前面谈到 Python 处理 Excel 文件最常见的两种方式&#xff0c;即&#xff1a;xlrd/xlwt、openpyxl其中&#xff0c;xlrd/xlwt 这一组…

腾讯视频下载安装链接_腾讯视频怎么上传视频

今天继续给大家分享腾讯视频方面的内容。腾讯视频播放器是腾讯视频官方推出的一款视频客户端&#xff0c;致力于为用户提供高清、流畅、丰富的专业视频服务&#xff0c;在这里您可在线享受腾讯视频网站内全部免费高清正版视频。使用腾讯视频播放器&#xff0c;你可以享受到高清…

burpsuite csrf攻击_CSRF攻击的BurpSuite实战

今天做的是CSRF越权攻击&#xff0c;原理是通过在自己网站或者目标网站&#xff0c;通过模拟发包&#xff0c;替客户端发送请求。环境配置考虑其危害性&#xff0c;虽然不是很大&#xff0c;但是考虑到安全问题&#xff0c;所以本次演示需自己搭建实验环境&#xff0c;主要内容…