大数据之JAVA基础(十一):Java的常用API--2

一、正则表达式regex

1.概念
正则表达式是一个字符串。使用单个字符来描述,用来定义匹配的规则,检索,替换文本等

2.语法规则
1)字符:x 含义:代表匹配字符x
2)字符:\\ 含义:代表的是反斜线字符‘\’
3)字符:\t 含义:产生一个制表符
4)字符:\n 含义:产生一个换行符
5)字符:\r 含义:产生一个回车符
6)字符:[abc] 含义:匹配字符a,或者b,或者c,即匹配a-c包含首尾
7)字符:[^abc] 含义:匹配不是字符a,b,c
8)字符:[a-zA-Z] 含义:匹配a-z和A-Z,包含首尾
9)字符:[0-9] 含义:匹配0-9的数字,包含首尾
10)字符:[a-zA-Z0-9_] 含义:匹配0-9,a-z,A-Z,_
11)字符:. 含义:匹配任何字符(如果想匹配‘.’,那么使用‘\\.’)
12)字符:\d 含义:匹配的是数字,相当于[0-9]
13)字符:\w 含义:匹配,或者字母或者数字或者下划线,相当于[0-9a-zA-Z_]
14)字符:^ 含义:边界匹配器,代表行的开头,相当于左双引号
15)字符:$ 含义:边界匹配器,代表行的结尾,相当于右双引号
16)字符:x? 含义:数量词,代表x 没出现或者出现了一次
17)字符:x* 含义:数量词,代表x出现了0次或者多次
18)字符:x+ 含义:数量词,代表x出现了1次或者多次
19)字符:x{n} 含义:数量词,代表x出现了n次
20)字符:x{m,n} 含义:数量词,代表x出现了至少m次,但是不超过n次

3.常用方法
1) public boolean matches(String regex) //判断字符串是否匹配正则表达式regex
2)public String[] split(String regex) //根据正则表达式规则拆分字符串
3)public String replaceAll(String regex,String replacement) //将符合规则的字符串内容,全部替换为新的字符串

4.练习
1)匹配
/*
* 正则表达式匹配练习
*/
public static void func5()
{
String str = "13617869180";
String regex = "";
//1.匹配正整数
regex = "[0-9]+";
regex = "\\d+";
//2.匹配正小数
regex = "[0-9]+\\.[0-9]+";
regex = "\\d+\\.\\d+";
//3.匹配负整数
regex = "-[0-9]+";
//4.匹配保留两位小数的正数
regex = "[0-9]+\\.[0-9]{2}";
//5.匹配保留1-3位小数的正数
regex = "[0-9]+\\.[0-9]{1,3}";
//6.匹配邮箱
regex = "\\w+@\\w+(\\.\\w+)+";
//7.匹配手机号
regex = "1[3-8][0-9]{9}";
//8.匹配QQ号
regex = "[1-9][0-9]{4,14}";
if(str.matches(regex))
System.out.println("匹配");
else
System.out.println("不匹配");
}


2)分割练习
/*
* 正则表达式,字符串分割练习
*/
public static void func6()
{
String str = "11-22-33-44";
String regex = "-";
String [] s = str.split(regex);
for (String string : s) {
System.out.println(string);
}
}

3)replace练习
/*
* 正则表达式,replace练习
*/
public static void func7()
{
String str = "asdjlk1123123ljsdla22111;1l1lll213";
String regex = "[0-9]";
str = str.replaceAll(regex, "@");
System.out.println(str);
}


二、Date类

1.概念
Date表示特定的瞬间,精确到毫秒

2.常用方法
1)将长整型的整数构造成日期:Date date = new Date(123123123123L);
2)将日期对象转成毫秒值:date.getTime();


三、DateFormat类

1.概念
DateFormat 是日期/时间格式的抽象类,它以与语言无关的方式格式化并解析日期或时间。通过这个类可以帮助我们完成日期和文本之间的转化,DateFormat是抽象类,我们需要使用它的子类SimpleDateFormat来进行创造对象

2.代码
public static void func9()
{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date dt = new Date(127381274981749L);
System.out.println(df.format(dt));
try {
dt = df.parse("2111-22-33");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(df.format(dt));
}

3.说明
DateFormat 类可以将一个Date对象转成一个指定格式的字符串,format方法
DateFormat类可以将一个字符串对象(有特定的格式),转成一个Date对象,parse方法

4.格式(yyyy-MM-dd)
l 当出现y时,会将y替换成年
l 当出现M时,会将M替换成月
l 当出现d时,会将d替换成日
l 当出现H时,会将H替换成时
l 当出现m时,会将m替换成分
l 当出现s时,会将s替换成秒


4.Calendar类

1.概念
Calendar类是日历类,是抽象类,创建对象是通过静态方法Calendar c = Calendar.getInstance();  进行创建的

2.常用方法


/*
* Calendar类练习
*/
public static void func10()
{
//静态方法创建对象
Calendar c = Calendar.getInstance();
//get方法,通过特定的字段值,获取年月日的值
int year = c.get(Calendar.YEAR);
System.out.println(year);
//add方法,将当前的日期,调整为5个小时之后,add就是增加时间
c.add(Calendar.HOUR, 5);
Date dt = c.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(dt));
//set方法,设定日历的指定字段值,注意月份0表示1月
c.set(Calendar.MONTH, 0);
dt = c.getTime();
df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(dt));
//getTime方法,将日历类转成Date类
dt = c.getTime();
df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(dt));
}

3.练习

1)求出自己已经出生了多少天
/*
* 求出自己已经出生了多少天
*/
public static void func11(String str)
{
Calendar cNow = Calendar.getInstance();
Date dtNow = cNow.getTime();
System.out.println(dtNow);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date dtBorn = new Date();
try {
dtBorn = df.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long now = dtNow.getTime();
long born = dtBorn.getTime();
int subDay = (int)((now - born)/1000/60/60/24);
System.out.println("出生了" + subDay + "天");
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值