java时间的正则表达式_java日期相关的类正则表达式

常用的API Date、Math、DateFormat、Calendar、正则表达式

Data类

public class DateDeom {

public static void main(String[] args) {

//创建日期类的对象

Date date=new Date();

// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

long time=date.getTime();

System.out.println(time);

System.out.println(date);

}

}

DateFormat抽象类

用来解析格和格式化日期时间的

解析 字符串类型的时间–>Date类型 1970 年 1 月 1 日–> 00:00:00 GMT (String –>Date)

格式化 Date类型的时间–>转换成字符串类型的时间 00:00:00 GMT –> 1970 年 1 月 1 日(Date–>String)

由于是抽象类,DateFormat的构造方法是用来初始换数据的。

成员方法

String format(Date date) 将一个 Date 格式化为日期/时间字符串。

Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

SimpleDateFormat类 继承了DateFormat抽象类

用到了操作系统的时间格式和语言环境

常用的构造方法

SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat对象。

利用父类的成员方法

String format(Date date) 将一个 Date 格式化为日期/时间字符串。

Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

可以将SimpleDateFormat 和缓冲类来看,将时间或者字符串格式传进去 进行转化

public class SimpleDateFormatDemo {

public static void main(String[] args) {

//创建对象

//String pattern 时间的格式

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

//格式化时间 Date->String

String dateStr=sdf.format(new Date());

System.out.println(dateStr);

//解析日期时间 String->Date

String dateString="2017-10-18";

try {

Date date=sdf.parse(dateString);

System.out.println(date);

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

解析和格式化日期的工具类

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class DateUtils {

/**

* 格式化日期

* @param date 日期

* @param pattern 字符串格式

* @return 指定日期的格式

*/

public static String dateToString(Date date,String pattern){

//将date对象转换成yyyy年MM月dd日HH:mm:ss的字符串时间

SimpleDateFormat sdf=new SimpleDateFormat(pattern);

String dateStr=sdf.format(date);

return dateStr;

}

/**

* 解析字符串转化成对应的日期

* @param dateStr 当前的日期时间

* @param pattern 格式

* @return 日期

*/

public static Date strToDate(String dateStr,String pattern){

//将date对象转换成yyyy年MM月dd日HH:mm:ss的字符串时间

SimpleDateFormat sdf=new SimpleDateFormat(pattern);

Date date=null;

try {

date=sdf.parse(pattern);

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return date;

}

}

Calendar日历抽象类

成员方法

abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

int get(int field) 返回给定日历字段的值。

Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。

void set(int field, int value)将给定的日历字段(年、月、日)设置为给定值

void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

void setTime(Date date)使用给定的 Date 设置此 Calendar 的时间。

import java.util.Calendar;

import java.util.Date;

public class CalenderDemo {

public static void main(String[] args) {

Calendar c=Calendar.getInstance();

System.out.println(c);

//根据字段的名称和偏移量修改时间

c.add(Calendar.YEAR, 2);//现在的年的基础上 加2连

c.add(Calendar.MONTH, 1);//现在的月的基础上 加2连

c.add(Calendar.DAY_OF_MONTH ,5);//现在的日的基础上 加5连

System.out.println(c);

//返还指定的日历字段的信息

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

//返回一个本地日期对象 Date

Date date=c.getTime();

System.out.println(date);

//根据指定的日期字段修改指定的值

c.set(Calendar.YEAR, 2015);

c.set(Calendar.MONTH,1);

c.set(Calendar.DAY_OF_MONTH, 1);

System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");

//设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

c.set(2002, 2, 23, 15, 30, 34);

System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");

//将时间设置日历上的时间

c.setTime(new Date());

System.out.println(c.get(Calendar.YEAR)+"年"+Calendar.MONTH+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");

}

}

System类 不能被实例化 在lang包

用来表示系统的类,用来操作系统的信息。

static void exit(int status) 终止当前正在运行的 Java 虚拟机。

static String getProperty(String key)获取指定键指示的系统属性。

public class SystemDemo {

public static void main(String[] args) {

/*int i=0;

while (true){

i++;

if(i==50){

System.exit(0);//退出java 虚拟机

}

}*/

String version=System.getProperty("java.version");

String os=System.getProperty("os.name");

System.out.println(version);

System.out.println(os);

}

}

Math类 在java.lang 包下

数学类 用来进行数学的基本运算

static double abs(double a) 返回 double 值的绝对值

static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

其他可查询API文档

基本的包装类型

将基本的数据类型转化成对象 利用面向对象的方式去处理数据。

列如

int –>Integer

char –>Charctor

包装类型的作用

可以把基本类型转成对象

可以把对象转成基本类型

把基本类型的数据转换成字符串

public class IntegerDemo {

public static void main(String[] args) {

//基本类型 转化成 对象

Integer i=new Integer(50);

System.out.println(i);

//把对象转换成基本类型

int num=i.intValue();

System.out.println(num);

//把基本类型换成字符串

String snum=i.toString();

System.out.println(snum);

//把字符串转化成基本类型

String numstr="123";

int i_num=Integer.parseInt(numstr);

System.out.println(i_num);

}

}

静态方法可以通过类名进行调用

装箱和拆箱

自动装箱:把基本类型的数据,自动转换成包装类型的对象

自动拆箱:把包装类型转成成基本类型

//自动装箱

Integer i4=200;

int a=200;

Integer i2=a;

//先把基本数据类型自动装箱成包装类型的对象,然后与i2相加的,得到包装类型的结果。

Integer i1=i2+300;

//自动拆箱:把包装类型的对象自动转成基本类型的数据

//先把包装类的i1自动拆箱成int类型的数字。然后把数字赋给变量i3

int i3=i1;

System.out.println(i3);

正则表达式 regex

是一个字符串,描述了一个规则,用来匹配某一个格式。

参照帮助文档

在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母。我们来学习语法规则。

正则表达式的语法规则:

字符:x

含义:代表的是字符x

例如:匹配规则为 “a”,那么需要匹配的字符串内容就是 ”a”

字符:\

含义:代表的是斜线字符’\’

例如:匹配规则为”\” ,那么需要匹配的字符串内容就是 ”\”

字符:\t

含义:制表符

例如:匹配规则为”\t” ,那么对应的效果就是产生一个制表符的空间

字符:\n

含义:换行符

例如:匹配规则为”\n”,那么对应的效果就是换行,光标在原有位置的下一行

字符:\r

含义:回车符

例如:匹配规则为”\r”,那么对应的效果就是回车后的效果,光标来到下一行行首

字符类:[abc]

含义:代表的是字符a、b 或 c

例如:匹配规则为”[abc]”,那么需要匹配的内容就是字符a,或者字符b,或字符c的一个

字符类:[^abc]

含义:代表的是除了 a、b 或 c以外的任何字符

例如:匹配规则为”[^abc]”,那么需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符

字符类:[a-zA-Z]

含义:代表的是a 到 z 或 A 到 Z,两头的字母包括在内

例如:匹配规则为”[a-zA-Z]”,那么需要匹配的是一个大写或者小写字母

字符类:[0-9]

含义:代表的是 0到9数字,两头的数字包括在内

例如:匹配规则为”[0-9]”,那么需要匹配的是一个数字

字符类:[a-zA-Z_0-9]

含义:代表的字母或者数字或者下划线(即单词字符)

例如:匹配规则为” [a-zA-Z_0-9] “,那么需要匹配的是一个字母或者是一个数字或一个下滑线

预定义字符类:.

含义:代表的是任何字符

例如:匹配规则为” . “,那么需要匹配的是一个任意字符。如果,就想使用 . 的话,使用匹配规则”\.”来实现

预定义字符类:\d

含义:代表的是 0到9数字,两头的数字包括在内,相当于[0-9]

例如:匹配规则为”\d “,那么需要匹配的是一个数字

预定义字符类:\w

含义:代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]

例如:匹配规则为”\w “,,那么需要匹配的是一个字母或者是一个数字或一个下滑线

边界匹配器:^

含义:代表的是行的开头

例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容从[abc]这个位置开始, 相当于左双引号

边界匹配器:$

含义:代表的是行的结尾

例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容以[0-9]这个结束, 相当于右双引号

边界匹配器:\b

含义:代表的是单词边界

例如:匹配规则为”\b[abc]\b”,那么代表的是字母a或b或c的左右两边需要的是非单词字符([a-zA-Z_0-9])

String regex = “.\b[abc]\b.“;

String str = “abc a bbc”;

booleanflag = str.matches(regex);

数量词:X?

含义:代表的是X出现一次或一次也没有

例如:匹配规则为”a?”,那么需要匹配的内容是一个字符a,或者一个a都没有

数量词:X *

含义:代表的是X出现零次或多次

例如:匹配规则为”a*”,那么需要匹配的内容是多个字符a,或者一个a都没有

数量词:X+

含义:代表的是X出现一次或多次

例如:匹配规则为”a+”,那么需要匹配的内容是多个字符a,或者一个a

数量词:X{n}

含义:代表的是X出现恰好 n 次

例如:匹配规则为”a{5}”,那么需要匹配的内容是5个字符a

数量词:X{n,}

含义:代表的是X出现至少 n 次

例如:匹配规则为”a{5, }”,那么需要匹配的内容是最少有5个字符a

数量词:X{n,m}

含义:代表的是X出现至少 n 次,但是不超过 m 次

例如:匹配规则为”a{5,8}”,那么需要匹配的内容是有5个字符a 到 8个字符a之间

逻辑运算符:XY

含义:代表的是X后跟Y

例如:匹配规则为”ab”,那么需要匹配的字符串内容就是 ”ab”

逻辑运算符:X|Y

含义:代表的是X 或 Y

例如:匹配规则为”a|b”,那么需要匹配的字符串内容就是 ”a”或”b”

逻辑运算符:(X)

含义:代表的是()括号内的数据作为一组数据出现,(X)的方式称为正则表达式中的组

19878dac996b0a24debda887d8778600.png

349d6b571e7ab9d39b64fd4f041ec972.png

public class RegexUtils {

/**

* 匹配手机号码是否合法

* 手机号的规则

* 1、1开头

* 2、必须是11位数字

* @param mobile

* @return

*/

public static boolean moblieRegex(String mobile){

//手机号的正则表达式

String mobileRegex="1[0-9]{10}";

return mobile.matches(mobileRegex);

}

public static void main(String[] args) {

String str="13673346754";

System.out.println(moblieRegex(str));

}

}

2017/10/18 12:30:17

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值