blog 2019.3.14 Day14 日期类、math类(随机数)、包装类、正则表达式

得到当前日期
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
获取当前时间
a

修改日期格式:

将当前日期按照想要的格式输出:

在这里插入图片描述

可以改为:
在这里插入图片描述
通过toString自动改成字符串 。

将字符串转换成日期

SimpleDateFormat
在这里插入图片描述

记着要抛异常。

在这里插入图片描述
在这里插入图片描述
通过这句话创建一个新的calendar对象
有的类不能直接new一个对象,可以通过这个对象里面的静态方法(Calender.静态方法)来声明一个对象。通过类来调用静态方法来返回一个值,这个值可以是对象本身

在这里插入图片描述

在这里插入图片描述
这种获取年的方式已经被废弃了,当代已经改变成上面那种方式了Calender类。

在这里插入图片描述
Calender里面的月是从0开始计算的 所以得到的月份要加一

还可以Calendar.DAY_OF_MONTH Calender.DAY_OF_YEAR
来判断出今天是这个月/今年的第几天
在这里插入图片描述

判断闰年平年

在这里插入图片描述

返回true闰年flase平年

Math类

在这里插入图片描述

4的2次方
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在java只生成的随机数称为伪随机数。
生成随机数的时候,要求我们必须传递一个种子进去。种子是一样的,每次生成的随机数都一样。
new Random默认加了种子,以当前系统时间作为种子。

在这里插入图片描述
两个Random( )里面的种子一样,所以两次产生的随机数一样。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

包装类

一切皆对象不适用于基本数据类型,给每一个基本数据类型提供了包装类型(对象)。基本数据类型不具备对象的特征。也不能通过基本数据类型去调用方法,为了让基本数据类型也具备对象的特征,java给基本数据类型提供了包装类,提供了包装类目的,可以像操作对象一样操作基本数据类型。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Integer 和int一样 不能无参构造,必须声明的时候传参。

在这里插入图片描述
在这里插入图片描述

Integer具有数据类型强制转换功能。

================================================
在这里插入图片描述
等同于
在这里插入图片描述

========================
在这里插入图片描述
Integer.parseint( value)
包装类和基本类型的相互转换

==========================
特点:
1、所有包装类都是final类,(为了字符串、线程安全)不能修改包装类的内容。一旦创建了一个包装类,它的数据类型就不能变了。
2、

作用:
1、学习集合的时候,集合的泛型要求必须是包装类型。规定不能用基本数据类型来作为泛型。
2、包装类型包含了每种数据类型的很多属性,比如 存放的值、所占的空间、最大值、最小值
3、作为基本数据类型对应的包装类型,提供很多的方法供我们操作、数据类型转化、进制转化。
4、包装类对象、值可以用null表示。基本数据类型不能用null表示。
比如 输入的年龄要求是数字,但是他输入了一个null 代码立即报错,但是你用包装类型来处理那就避免了这个问题。

 Integer m = new Interger(null);  不报错
 int m =null  错

包装类型的自动装箱和拆箱

装箱:将基本数据类型变成包装类型。
拆箱:将包装类型转换为基本数据类型。

在jdk1.5之前,如果要实现自动装箱或者拆箱,需要手动写代码。在1.5之后,引入了自动装箱和拆箱功能,免去了自己手动转的麻烦。
在这里插入图片描述
num1本来是int类型,但是可以直接赋值给integer类型----这就是自动装箱。

在这里插入图片描述
num3是integer类型,但是可以直接赋值给int类型-------------自动拆箱

包装类型用于不确定用户输入的值 是int还是空的  这个时候用Integer

字符串转换数字(用于用户输入密码的时候)

在这里插入图片描述

进制转换

在这里插入图片描述

1、将100(2进制) 转化为10进制。
2、将16进制的100 转化为10进制
3、将1100110(2进制)转化为10进制。

在这里插入图片描述

将100转换为8进制
将100转换为16进制
在这里插入图片描述
将100转换为2进制。

任何进制转换后,只能用字符串来接收,因为转换过后不管是什么类型string都可以包含。int等可能会越界、产生其他int不包含的字符。

=====================================================================

正则表达式regex

在这里插入图片描述
正则表达式是一个字符串表达式,单独提出了一些语法、规范。也就是写一个匹配规则,匹配值的时候就按这个规范去匹配,能匹配就是true,不能就是false 。效率远超于if else之类的。

正则表达式有表达式的语法方式,目标:学习正则表达式的语法。

正则表达式中常用到的代码

 .        点可以匹配换行符以外的任意字符
\w        可以匹配任意的数组或者字母
\d        可以匹配任意的数字
\s        可以匹配任意的空格
 ^        代表字符串的开始
 $        代表字符串的结束

eg: ^\w{5}$ 代表匹配的字符串要以数字或者字母开始,或者以数字或者字母结尾,必须匹配5个。

String s = "12345"
String a = "1234k"

s 、a 就可以匹配到这个表达式内。


eg: ^\w{3}\d{2}$ 代表以数字或者字母开始三位,以数字结尾两位
String s = “sbc12” 可以匹配到这个表达式内。


^\s{0,3}\d{2}$ 可以是空格开始,最多有三个空格,必须以两个数字结尾。
^\s{1,3}\d{2}$ 一个空格开始,最多三个空格,必须两个数字结尾


^.$ 中间什么内容都可以


正则表达式还提供了量词

* 表示可以匹配0次或者多次
+ 表示可以匹配1次或者多次
表示可以匹配0次或者1次
{n} 表示只能匹配n次
{n,} 表示至少匹配n次
{n,m} 表示至少匹配n次,最多匹配m次


^\d+$ 可以匹配一个或多个
^\d ?$ 可以匹配0次或者1次 等同于^\d{0,1}$

[] 中括号代表可以从中间匹配任意一个内容,也可以匹配多个。

^[0-9]+$  等同于 ^\d$

^[0-9a-zA-Z_#]{3,}$ 

代表数字,小写字母,大写字母 下划线,井号 都可以匹配,但是必须有三个


电话号码:028-8位 0831-7位

^\d{3}-\d{8}$| ^\d{4}-\d{7}$

-号是连接符 |是"或"


分组

某一段表达式需要重复多次,这个就需要分组,()包含起来的表达式,分成一个组。

转义的内容

匹配一个网址www.baidu.com

^(www.)[a-z0-9]{1,}.(com|cn|gov)$

但是这个这个. 表示可以匹配任意的换行符

wwwuuubaiducom 也可以通过匹配。

所以需要转义 通过加 \

^(www\.)[a-z0-9]{1,}\.(com|cn|gov)$

加了斜杠就表示为要匹配的内容了,自动忽略了正则表达式的关键则规范。


在编译时,为了让编译器识别\ 需要在\前面加一个\进行转义 才可以使用

在这里插入图片描述

也可以不用斜杠
在这里插入图片描述


在这里插入图片描述
表示匹配任何字符。


中文的正则表达式:把中文的第一个字和最后一个字表达出来, 中文的第一个字 u4e00
最后一个字 u9fa5
在这里插入图片描述


匹配网址
在这里插入图片描述

\\. 第一个斜杠转义第二个斜杠 第二个斜杠转义点


匹配一个电话:
在这里插入图片描述


按照空格拆
在这里插入图片描述
但是只能拆一个空格,遇到空格多的时候就麻烦了。

在这里插入图片描述
通过正则表达式
改成这种以后,就可以按一个或多个空格拆。


用两个! 替换 -
在这里插入图片描述
在这里插入图片描述


把字符串中的数字全部替换成感叹号–正则表达式
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39263750/article/details/88550285
今日推荐