得到当前日期
获取当前时间
修改日期格式:
将当前日期按照想要的格式输出:
可以改为:
通过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.)[a-z0-9]{1,}.(com|cn|gov)$
但是这个这个.
表示可以匹配任意的换行符
wwwuuubaiducom 也可以通过匹配。
所以需要转义 通过加 \
^(www\.)[a-z0-9]{1,}\.(com|cn|gov)$
加了斜杠就表示为要匹配的内容了,自动忽略了正则表达式的关键则规范。
在编译时,为了让编译器识别\
需要在\
前面加一个\
进行转义 才可以使用
也可以不用斜杠
表示匹配任何字符。
中文的正则表达式:把中文的第一个字和最后一个字表达出来, 中文的第一个字 u4e00
最后一个字 u9fa5
匹配网址
\\.
第一个斜杠转义第二个斜杠 第二个斜杠转义点
匹配一个电话:
按照空格拆
但是只能拆一个空格,遇到空格多的时候就麻烦了。
通过正则表达式
改成这种以后,就可以按一个或多个空格拆。
用两个! 替换 -
把字符串中的数字全部替换成感叹号–正则表达式