1.正则
- 正则是字符串,是对字符高度处理的一组条件语句
- pattern有关于正则的详细介绍
正则中字母均区分大小写
\\表示\本身
\表示转义,\n 换行 \t tab键 \r表示回车(回到下一行前边)
[a]或a表示a本身
[abc]表示含有a或者b或者c就匹配
[^abc]表示含有abc 任意一个就不匹配 ^表示抑或
[0-9]或\d(实际上是\\d)表示数字
[a-zA-Z]表示大小写字母相匹配
[a-zA-Z_0-9](或\w实际上\\w)表示字母数字相匹配
. 匹配任意字符()注意在之后需要用到 单纯.需要转义为\.
a?表示出现一次或没有
x{n}表示x出现n次
x{n,}表示x出现至少n次
x{n,m}表示最少n或者m次
[]表示字符串的一个字符位置上的条件,单独[]表示字符串首个字符的条件
{}表示范围
[0-9]{9}表示一个九位数的数字或者\\d{9}同义(\\D表示非数字)
1[3578][0-9]{9}表示首位1,第二位只能3578,余下九位数字
a*b表示a是0次或多次最后一位是b
2.String中字符匹配几个方法
- matches(正则规则)返回boolean值
- split(“a”)按照a来切割返回一个string[]
- replaceall(规则,字符)按照规则来替换成字符
"abc".matches("[a]")表示abc字符串第一位是a匹配成功
“15------ab---de---34”.split("-+")按照-来切割
+是将连续的-都切掉(匹配多个或一个字符是-)
“hello1234---www.aaa3456”.replaceall("[0-9+]",“#”)
打印时hello####---www.aaa####
“hello1234---www.aaa3456”.replaceall("[0-9]+",“#”)
打印时hello#---www.aaa#
正小数:\\d+\\.\\d
小数点后两位:\\d+\\.\\d{2}
(\\.[a-z]+)+表示(.多个字母)整体可出现多次
3.date类
- System.currentTimeMillis()返回long值参数,是时间毫秒,起始时间是1970年一月一日午夜00:00:00
- 事件本身不可计算但是可以转换成毫秒来计算,计算机底层是毫秒来计算
- date是在util包中
- long类型返回值大部分是时间毫秒
- new Date(99999999999L)转换毫秒变成对应日期对象
- getTime()将date转成毫秒值
long time=new Date().getTime()
- settime()将日期设置到指定毫秒值上
4.dateformate
simpledateformate是其子类
String date= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date());
System.out.println(date);
- parse将字符串解析成日期对象,有异常在void name()和{}之间添加throws exception(方法本身和调用方法都用抛出异常)
public static void main(String[] args)throws Exception {
mat();
}
public static void mat()throws Exception {
Date date= new SimpleDateFormat("yyyy-MM-dd").parse("2015-9-9");
System.out.println(date);
}
5.calander类
- 不需要new子类而是getinstance来静态获取
- 老外0-11月,书写2表示三月,get得到的需要+1
Calendar.getInstance().get(Calendar.YEAR);
一是不需要new,二是获取年或者月日等需要用静态参数Calendar.YEAR
Calendar.getInstance().get(Calendar.MONTH)+1得到月
- set(字段,数值)设置日历到指定时间
Calendar.getInstance().set(Calendar.MONTH,9)设置到10月份
或者可以set(年,月,日)
- add(字段,数值)在某一个时间偏移
判断闰年,3月1日前一天是二月几日,29就是闰年
Calendar can=Calendar.getInstance();
can.set(2088, 2,1);
can.add(Calendar.DAY_OF_MONTH,-1);
System.out.println(can.get(Calendar.DAY_OF_MONTH));