Java 常用工具类
正则表达式
常用
参考:http://blog.csdn.net/zfszhangyuan/article/details/52451240
/**用户名* [a-z0-9_-] 匹配列表中的字符,a-z,0–9,下划线,连字符* {3,15} 长度至少3个字符,最大长度为15*/
public static final String USERNAME="^[a-z0-9_-]{3,15}$";
public static boolean isUsername(String regx) {return Pattern.matches(USERNAME, regx);
}
/**密码* ( 组开始* (?=.*\d) 必须包含一个数字* (?=.*[a-z]) 必须包含一个小写字符* (?=.*[A-Z]) 必须包含一个大写字符* (?=.*[@#$%]) 必须包含一个列表中的特殊字符"@#$%"* {6,20} 长度至少为6个字符,最大长度为20*/
public static final String PASSWORD="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
public static boolean isPassword(String regx) {return Pattern.matches(PASSWORD, regx);
}
/**邮箱* [_A-Za-z0-9-]+ 必须以中括号中的字符为起始字符[],必须包含一个或多个(+)* ( 组#1开始* \\.[_A-Za-z0-9-]+ 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)* )* 组#1结束, 这个组是可选的(*)* @ 必须包含一个"@"符号* [A-Za-z0-9]+ 接下来是中括号内的字符[],必须包含一个或者多个(+)* ( 组 #2开始 – 一级TLD检查* \\.[A-Za-z0-9]+ 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)* )* 组#2结束,这个组是可选的(*)* ( 组#3开始 – 二级TLD检查* \\.[A-Za-z]{2,} 接下来是一个点"."和中括号内的字符[], 最小长度为2* ) 组#3结束*/
public static final String EMAIL="^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
public static boolean isEmail(String regx) {return Pattern.matches(EMAIL, regx);
}
量词
贪婪 | 惰性 | 描述 |
---|---|---|
? | ?? | 零次或一次出现 |
* | *? | 零次或多次出现 |
+ | +? | 一次或多次出现 |
{n} | {n}? | n次出现 |
{n,m} | {n,m}? | 至少n次至多m次出现 |
{n,} | {n,}? | 至少n次出现 |
量词贪婪和惰性举例:
String str1="abbbaabbbaaabbb1234";
Pattern r1 = Pattern.compile(".*bbb");
Matcher m1 = r1.matcher(str1);
if(m1.find()){System.out.println("Found value: " + m1.group(0) );//abbbaabbbaaabbb
}
Pattern r2 = Pattern.compile(".*?bbb");
Matcher m2 = r2.matcher(str1);
if(m2.find()){System.out.println("Found value: " + m2.group(0) );//abbb
}
断言
用于找到字符串中以自定义规则结尾的字符串,比如找到字符串”abbbaabbbaaabbb1234”中所有以”a”结尾的字符串”abbb”:
String str1="abbbaabbbaaabbb1234";
Pattern r1 = Pattern.compile("(abbb)(?=a)");
Matcher m1 = r1.matcher(str1);
int count1=0;
while(m1.find()){System.out.println("Found value: " + m1.group(count1++) );//打印两次abbb
}
用于判断一个字符串是否包含自定义规则
String str2="123aaa456aaa";
System.out.println(Pattern.matches("(?=.*aaa).{12}",str2));//是否包含aaa且总长度为12?true
System.out.println(Pattern.matches("(?=.*aab).{12}",str2));//是否包含aab且总长度为12?false
计算
double四舍五入
//使用DecimalFormat,推荐
DecimalFormat df = new DecimalFormat("#.00");
df.setRoundingMode(RoundingMode.UP);
System.out.println(df.format(10.555));//10.56//使用BigDecimal,计算时推荐
System.out.println(new BigDecimal(10.555).setScale(2, RoundingMode.UP).doubleValue());//10.56//使用Math.round
System.out.println((double)Math.round(10.555*100)/100);//10.56
时间
private static SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");
private static SimpleDateFormat dateM = new SimpleDateFormat("yyyy-MM");
//取得距离当前月n个月的月份最后一天
public static String getMonthLastDay(int monthDistance){Calendar cal= Calendar.getInstance();cal.set(Calendar.MONTH,monthDistance);cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));String lastDay=dateF.format(cal.getTime());return lastDay;
}
//取得距离当前月n个月的月份第一天
public static String getMonthFirstDay(int monthDistance){Calendar cal= Calendar.getInstance();cal.set(Calendar.MONTH,monthDistance);cal.set(Calendar.DAY_OF_MONTH,1);String first=dateF.format(cal.getTime());return first;
}
Java 常用工具类相关推荐
- Java常用工具类StringUtils的常用方法
Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...
- java常用工具类和Hutool常用的工具类整理
java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...
- Java常用工具类JsonUtils
Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...
- JAVA常用工具类(实用高效)
JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...
- Hutool Java常用工具类汇总
简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...
- Java 常用工具类整理
目录 第一部分:常用的16个工具类 第二部分:java开发常用工具类(正则校验) 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 1.closeQuiet ...
- Java常用工具类之异常、包装类、字符串处理类、集合框架实现类、输入输出流、多线程
集合.多线程和I/O流等 介绍6种常用工具类: 1.如何应用异常处理程序中的问题?2.如何通过包装器类实现基本数据类型的对象化处理?3.字符串处理类String.StringBuilder是如何进行字 ...
- Java 常用工具类 Collections 源码分析
文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25 Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组 ...
- java常用工具类_java(二):工作中常用到的工具类
工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了,从而节省了很多时间,大家可以利用这些时间去做其它重要的事情,如果没有符合自己的工具类, ...
- java 常用工具类的使用一
1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰.学的程序越多,不懂的知识越 ...
最新文章
- Socket.IO 客户端 API IO
- BB陆逊高达(3Dmax)
- python学习(操作列表、if语句)
- 设置三个线程顺序打印数字问题(转载)
- Linux笔记-查询进程,获取其运行时输入的参数
- 使用脚本控制网页Table的显示隐藏(全代码)_AX
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 (以后在写SQL时,要有这种思想!!!)
- 关于使用npm下载资源包的一些常用命令
- 基于MATLAB的列车防护曲线组合步长算法分析与仿真验证
- 测试结果OK、NG、NT、POK的意思
- 神经网络之输出层设计
- DEFCON 23|专门抓捕黑客的人
- 流体动态海报 | mixlab设计黑客
- POI问题总结,关于数字级联及多级级联(三级以上)
- matlab 中lsim的用法,lsim的用法
- 邢台职业技术学院计算机学费,邢台职业技术学院各专业学费标准
- 竞价托管百度搜狗360神马搜索竞价账户托管外包 代运营
- 介绍一个很不错的电影网站
- PHP函数implode()与explode()的用法
- Android仿微信,QQ群头像合成