正则表达式

常用

参考: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 常用工具类相关推荐

  1. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

  2. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  3. Java常用工具类JsonUtils

    Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...

  4. JAVA常用工具类(实用高效)

    JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...

  5. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  6. Java 常用工具类整理

    目录 第一部分:常用的16个工具类 第二部分:java开发常用工具类(正则校验) 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 1.closeQuiet ...

  7. Java常用工具类之异常、包装类、字符串处理类、集合框架实现类、输入输出流、多线程

    集合.多线程和I/O流等 介绍6种常用工具类: 1.如何应用异常处理程序中的问题?2.如何通过包装器类实现基本数据类型的对象化处理?3.字符串处理类String.StringBuilder是如何进行字 ...

  8. Java 常用工具类 Collections 源码分析

    文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25 Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组 ...

  9. java常用工具类_java(二):工作中常用到的工具类

    工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了,从而节省了很多时间,大家可以利用这些时间去做其它重要的事情,如果没有符合自己的工具类, ...

  10. java 常用工具类的使用一

    1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰.学的程序越多,不懂的知识越 ...

最新文章

  1. Socket.IO 客户端 API IO
  2. BB陆逊高达(3Dmax)
  3. python学习(操作列表、if语句)
  4. 设置三个线程顺序打印数字问题(转载)
  5. Linux笔记-查询进程,获取其运行时输入的参数
  6. 使用脚本控制网页Table的显示隐藏(全代码)_AX
  7. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 (以后在写SQL时,要有这种思想!!!)
  8. 关于使用npm下载资源包的一些常用命令
  9. 基于MATLAB的列车防护曲线组合步长算法分析与仿真验证
  10. 测试结果OK、NG、NT、POK的意思
  11. 神经网络之输出层设计
  12. DEFCON 23|专门抓捕黑客的人
  13. 流体动态海报 | mixlab设计黑客
  14. POI问题总结,关于数字级联及多级级联(三级以上)
  15. matlab 中lsim的用法,lsim的用法
  16. 邢台职业技术学院计算机学费,邢台职业技术学院各专业学费标准
  17. 竞价托管百度搜狗360神马搜索竞价账户托管外包 代运营
  18. 介绍一个很不错的电影网站
  19. PHP函数implode()与explode()的用法
  20. Android仿微信,QQ群头像合成

热门文章

  1. 单链表操作之合并两个单链表
  2. Postman配置token进行测试
  3. 网站反爬指南:政府网站篇
  4. 大天使之剑(奇迹MU页游版)体验记
  5. AMD授权X86技术给中国,养虎为患还是另有所谋?
  6. 加载property配置文件
  7. Second season twentieth episode,poor Phoebe
  8. 山东科技大学Problem B: 打印字母菱形图案
  9. 使用HSL连接欧姆龙PLC配置
  10. 算法24c语言,EEPROM(AT24C16)页写算法