正则表达式总结

## 正则表达式
   java.util.regex.Pattern
   正则表达式:
   一个用来描述或者匹配一系列符合某个语法规则字符串的单个字符串
   使用:
   String | boolean mathches (Sting regex);,判断字符串是否符合regex正则表达式规则
   字符类
   [abc]   a、b 或 c(简单类) 
   [^abc]   任何字符,除了 a、b 或 c(否定) 
   [a-zA-Z]   a 到 z 或 A 到 Z,两头的字母包括在内(范围) 
   [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 
   [a-z&&[def]]   d、e 或 f(交集) 
   [a-z&&[^bc]]   a 到 z,除了 b 和 c:[ad-z](减去) 
   [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
   预定义字符类规则
   .   任何字符(与行结束符可能匹配也可能不匹配) 
   \d   数字:[0-9] 
   \D   非数字: [^0-9] 
   \s   空白字符:[ \t\n\x0B\f\r] 
   \S   非空白字符:[^\s] 
   \w   单词字符:[a-zA-Z_0-9] 
   \W   非单词字符:[^\w] 
   圆点用 \\.表示
   数量词规则
   X?   X,一次或一次也没有 
   X     X,零次或多次 
   X+   X,一次或多次 
   X{n}   X,恰好 n 次 
   X{n,} X,至少 n 次 
   X{n,m} X,至少 n 次,但是不超过 m 次 
   替换功能
   String | String replaceAll(String regex, String replacement) 
   根据指定正则表达式规则,替换所有符合规则的字符

   分组
   叠词切割:
   (.)\\1+
   (.) 表示任意字符作为一个组
   \\1 表示第一组出现一次
   +   表示出现1次或多次

   
String s1 = "sdqqfgkkkhjppppkl";
System.out.println(s1.replaceAll("(.)\\1+", ""));
String s2 = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
System.out.println(s2.replaceAll("\\.","").replaceAll("(.)\\1+", "$1"));
## Pattern 和 Mather
   Pattern: Java中正则表达式的功能实现的提供者
   Mather: 匹配器
   格式:
   Pattern p = Pattern.compile(regex); //获取正则表达式
   Matcher m = p.matcher(string); //获取比较器
   boolean b = m.matches();
   以上同:string.matches(regex);效果

   
String s = "我的手机是18511866260,我曾用过18987654321,还用过18812345678";
Pattern p = Pattern.compile("1[0-9]{10}"); //获取正则表达式
Matcher m = p.matcher(s);
while(m.find()) {
String string = m.group();
System.out.println(string);
}

## Math
   常用方法:
   Math.PI
   double Math.ceil(); 向上取整
   double Math.floor();  向下取整
   int Math.abs();    绝对值
   Math.max();
   Math.min();
   double Math.pow(x,y); x的y次方
   Math.random();    生成[0.0,1.0)间的小数
   int Math.round();     四舍五入
   double Math.sqrt(); 开平方

## Random
   专门用于生成随机数的类
   构造方法
   Random();
   Random(long seed);
   常用方法
   int nextInt(); //随机生成一个整数
   int nextInt(int n); //生成随机数,范围在0和n之间,包含0不包含n

## System
   常用方法:
   public static void gc() //调用垃圾回收器
   public static void exit(int status) 退出jvm虚拟机,非0表示异常退出
   public static void currentTimeMillis() 获取当前时间毫秒值
   public static void arrayCopy(src,srcPos,dest,destPos,length) 数组拷贝,给数组扩容

## BigInteger 和 BigDecimal
   BigInteger
   构造方法:
   public BigInteger(String val)
   常用方法
   public BigInteger add(BigInteger val)
   public BigInteger subtract(BigInteger val)
   public BigInteger multiply(BigInteger val)
   public BigInteger divide(BigInteger val)
   public BigInteger remainder(BigInteger val)
   BigDecimal
   为了更精确的计算小数
   System.out.println(12.3/0.3); //41.00000000000001
   System.out.println(2.0 - 1.1); //0.8999999999999999
   构造
   public BigDecimal(String val)
   方法
   public BigDecimal add(BigDecimal augend)
   public BigDecimal subtract(BigDecimal subtrahend)
   public BigDecimal multiply(BigDecimal multiplicand)
   public BigDecimal divide(BigDecimal divisor)
   推荐方式
   BigDecimal bd1 = new BigDecimal("2.0");
   BigDecimal bd2 = new BigDecimal("1.1");
   System.out.println(bd1.subtract(bd2));

## Date
   构造
   Date() 
   Date(long date) 
   方法:
   long getTime() //获取当前时间毫秒值
   void setTime(long time)  设置毫秒值,改变时间对象

   long 和 Date 互转
   long -> Date  getTime()
   Date -> long  构造方法,Date d = new Date(long date)


## SimpleDateFormat
   是抽象类DateFormat的直接子类,格式化并解析时间
   构造:
   SimpleDateFormat() 使用默认个事解析时间
   SimpleDateFormat(String pattern) 指定日期格式
   方法:
   public fianl String format(Date date) 将时间按照指定格式转换为字符串
   public Date parse(String source) 把字符串按照指定格式解析成Date

   String 和 Date 相互转换
   Date -> String     format
   String -> Date     parse


## Calendar
   Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
   概述:可以对日期进行加减操作的类

   创建对象格式
   Calendar c = Calendar.getInstance();  //父类引用指向子类对象

   常用方法
   add(int field,int amount) 对指定字段向前减,向后加
   正数表示向后计算n天后,负数表示向前计算n天前
   set(int field, int value)
   将给定的日历字段设置为给定值
   get(int field) 获取指定字段的值; 
   c.get(Calendar.YEAR);获取当前对象的年

   Date 和 Calendar 相互转换
   Calendar -> Date  
   使用calendar的Date | getTime()方法
   Date -> Calendar  
   date无法直接转换为calendar,可以先创建一个calendar对象,然后通过c.setTime(Date d)方法转换为Calendar对象

   练习
   生成日历
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值