正则表达式+大数类操作+日期常用方法的使用

正则表达式的应用:求开头不为0,长度为5-15,都是数字的字符串
String s="[1-9]\\d{4,14}";



[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] 




Greedy 数量词 
X? ,一次或一次也没有 
X* ,零次或多次 
X+ ,一次或多次 
X{n} ,恰好 n 次 
X{n,} ,至少 n 次 
X{n,m} ,至少 n 次,但是不超过 m 次 





String s = "金三胖.郭美美.李dayone";
String[] arr = s.split("\\.");                //通过正则表达式切割字符串



String regex = "\\d";            //\\d代表的是任意数字    
String s2 = s.replaceAll(regex, "");    //把字符串中的数字都删除



String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
String s2 = s.replaceAll("\\.+", "");           //把是.的字符(连续字符)删除
String s3 = s2.replaceAll("(.)\\1+", "$1");    //$1代表第一组中的内容
System.out.println(s3);


String s = "sdqqfgkkkhjppppkl";
String regex = "(.)\\1+";                    //+代表第一组出现一次到多次
String[] arr = s.split(regex);



//叠词 快快乐乐,高高兴兴
String regex = "(.)\\1(.)\\2";                    //\\1代表第一组又出现一次    \\2代表第二组又出现一次
System.out.println("快快乐乐".matches(regex));
System.out.println("快乐乐乐".matches(regex));
System.out.println("高高兴兴".matches(regex));
System.out.println("死啦死啦".matches(regex));



//叠词 死啦死啦,高兴高兴
String regex2 = "(..)\\1";
System.out.println("死啦死啦".matches(regex2));
System.out.println("高兴高兴".matches(regex2));
System.out.println("快快乐乐".matches(regex2));


String s = "我的手机是18988888888,我曾用过18987654321,还用过18812345678";
String regex="1[23456789]\\d{9}";
Pattern p=Pattern.compile(regex);                  //获取正则表达式
Matcher m=p.matcher(s);                            //获取匹配器
while(m.find()){                                   //查找匹配器中能满足正则表达式的字符串
    System.out.println(m.group());             //查找到后,获取字符串并输出
}


 
Math.PI:圆周率的值
Math.abs(int num):求绝对值
Math.ceil(int num):向上取整
Math.floor(int num):向下取整
Math.round(int num):四舍五入
Math.random(int num):0-1之间的随机数
Math.max(int num1,int num2):两个数的较大值
Math.min(int num1,int num2):两个数的较小值
Math.pow(int num1,int num2):求n的m次方
Math.sqrt(int num);求平方根





Random r = new Random();
for(int i = 0; i < 10; i++) {
    System.out.println(r.nextInt(10));            //生成在0到n范围内的随机数,包含0不包含n
}



int[] src = {11,22,33,44,55};
int[] dest = new int[8];
System.arraycopy(src, 0, dest, 0, src.length);        //将数组内容拷贝



long start = System.currentTimeMillis();        //1秒等于1000毫秒,注意要用long型
...
long end = System.currentTimeMillis();            //获取当前时间的毫秒值
System.out.println(end - start);



System.exit(1);                            //非0状态是异常终止,退出jvm



f0000or(int i = 0; i < 100; i++) {
    new Demo();
    System.gc();                        //运行垃圾回收器,一般配合类来使用
}
class Demo {                            //在一个源文件中不允许定义两个用public修饰的类,public修饰的类只能定义在自己的类文件中
    public void finalize() {
        System.out.println("垃圾被清扫了");
    }                            
    
}




BigInteger b1=new BigInteger("100");                  
BigInteger b2=new BigInteger("2");                    
System.out.println(b1.add(b2));                       //大数加法
System.out.println(b1.subtract(b2));                  //大数减法
System.out.println(b1.multiply(b2));                  //大数乘法
System.out.println(b1.divide(b2));                    //大数除法
BigInteger[] arr=b1.divideAndRemainder(b2);           //大数除法加取模
System.out.println(arr[0]);                           //商
System.out.println(arr[1]);                           //余




BigDecimal bd3 = new BigDecimal("2.0");        //通过构造中传入字符串的方式,开发时推荐
BigDecimal bd4 = new BigDecimal("1.1");    
System.out.println(bd3.subtract(bd4));
BigDecimal bd1 = BigDecimal.valueOf(2.0);    //这种方式在开发中也是推荐的
BigDecimal bd2 = BigDecimal.valueOf(1.1);    
System.out.println(bd1.subtract(bd2));





Date类的概述是util包下的,不能导入sql包的
Date d1 = new Date();                           //如果没有传参数代表的是当前时间
Date d2 = new Date(0);                    //如果构造方法中参数传为0代表的是1970年1月1日

Date d3=new Date(long num); 
d1.setTime(1000);                    //设置毫秒值,改变时间对象
System.out.println(d1.getTime());            //通过时间对象获取毫秒值
System.out.println(System.currentTimeMillis());        //通过系统类的方法获取当前时间毫秒值





//DateFormat df = new DateFormat();                //DateFormat是抽象类,不允许实例化
DateFormat df1 = DateFormat.getDateInstance();            //相当于父类引用指向子类对象,右边的方法返回一个子类对象
Date d = new Date();                        //获取当前时间对象
SimpleDateFormat sdf = new SimpleDateFormat();            //默认格式为:88-6-6 下午9:31
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//创建日期格式化类对象
System.out.println(sdf.format(d));                 //将日期对象转换为字符串
String str = "2000/08/08 08/08/08";
Date d = sdf.parse(str);                                        //将时间字符串转换成日期对象
System.out.println(d);




Calendar c = Calendar.getInstance();            //父类引用指向子类对象
System.out.println(c.get(Calendar.YEAR));        //通过字段获取年
System.out.println(c.get(Calendar.MONTH));        //通过字段后期月,但是月是从0开始编号的
System.out.println(c.get(Calendar.DAY_OF_MONTH));    //月中的第几天
System.out.println(c.get(Calendar.DAY_OF_WEEK));    //周日是第一天,周六是最后一天        
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
c.set(2000, 7, 8);                    //设置年月日
c.add(Calendar.MONTH, -1);                //对指定的字段进行向前减或向后加
c.set(Calendar.YEAR, 2000);                //修改指定字段

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值