常见对象(二)

23 篇文章 0 订阅

正则表达式的使用

  • 只返回有没有匹配上

/**
     *  . 任何字符 
        \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,零次或多次 
        X+ X,一次或多次 
        X{n} X,恰好 n 次 
        X{n,} X,至少 n 次 
        X{n,m} X,至少 n 次,但是不超过 m 次 

     */
package cn.cast;

public class HelloWorld {
    public static void main(String[] args) {
        String regex="[1-9][\\d]{4,14}";
        System.out.println("abcedf".matches(regex));
        System.out.println("568978".matches(regex));
//      单个字符的匹配
        regex="[abc]";
        System.out.println("a".matches(regex));
        System.out.println("b".matches(regex));
        System.out.println("ab".matches(regex));
//      任何字符除了abc
        regex="[^abc]";
        System.out.println("a".matches(regex));
        System.out.println("b".matches(regex));
        System.out.println("d".matches(regex));
//      取交集
        regex="[a-d&&def]";
        System.out.println("a".matches(regex));
        System.out.println("b".matches(regex));
        System.out.println("d".matches(regex));

    }

}
  • 切割字符
package cn.cast;

public class HelloWorld {
    public static void main(String[] args) {
        String s = "我..爱....java";
        String regex = "\\.+";                  //.是代表任意字符,不能直接用点切割,需要转义
        String[] arr = s.split(regex);          //切割后返回的是字符串数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}
  • 分组的功能
package cn.cast;

public class HelloWorld {
    /**
     * @param args
     */
    public static void main(String[] args) {
        demo1();
        demo2();
        demo3();
        //出现四个一模一样的字符哈哈哈哈
        String regex = "(.)\\1{3}";
        System.out.println("1234".matches(regex));
        System.out.println("哈哈哈哈".matches(regex));
    }

    public static void demo3() {
//      ()\\1代表的是第一组的数据,\\2代表的是第二组的数据
        //判断是否是叠词高兴高兴,快乐快乐,死啦死啦
        String regex = "(..)\\1";
        System.out.println("死啦死啦".matches(regex));
        System.out.println("1234".matches(regex));
    }

    public static void demo2() {
        //判断是否是叠词高高兴兴,快快乐乐
        String regex = "(.)\\1(.)\\2";
        System.out.println("不高兴兴".matches(regex));
        System.out.println("快快乐乐".matches(regex));
    }
//  替换所有匹配上的字符
    public static void demo1() {
        String s = "itcast";
        String regex = "[abc]";
        String s2 = s.replaceAll(regex, "oo");
        System.out.println(s2);
    }
    public static void main(String[] args) {
        String s="我我....要要....学.学....编程....";
        String s2=s.replaceAll("\\.+", "");
//      $1代表的是取第一组的数据
        String s3=s2.replaceAll("(.)\\1", "$1");
        System.out.println(s3);
    }
}
  • patten类的使用
package cn.cast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class HelloWorld {
    /**
     * @param args
     */
    public static void main(String[] args) {
        //demo1();
        String str = "我的电话号码是18511866260,曾经用过13887654321,还用过18912345678";
        String regex = "1[34578]\\d{9}";
        Pattern p = Pattern.compile(regex);         //获取正则对象
        Matcher m = p.matcher(str);                 //获取匹配器

        while(m.find())                             //当while语句只控制一句语句的时候,大括号可以省略
            System.out.println(m.group());
    }

    public static void demo1() {
        Pattern p = Pattern.compile("a*b");         //获取正则对象
        Matcher m = p.matcher("aaaaabc");           //获取匹配器
        boolean b = m.matches();

        System.out.println(b);
    }

}

Math类的使用

public static void main(String[] args) {
         System.out.println(Math.PI);
         System.out.println(Math.abs(-10)); //取绝对值
         System.out.println(Math.abs(10));
         System.out.println(Math.ceil(12.33)); //天花板(向上取整,但是是一个double数)
         System.out.println(Math.ceil(12.77));
         System.out.println(Math.floor(12.33)); //地板(向下取整,但是是一个double数)
         System.out.println(Math.floor(12.77));
         System.out.println(Math.max(10, 100));
         System.out.println(Math.pow(2, 3)); //2.0 ^ 3.0次方
         System.out.println(Math.random()); //随机数(0.0 - 1.0之间,不包括1.0)
         System.out.println(Math.round(12.33));
         System.out.println(Math.round(12.53)); //四舍五入
        System.out.println(Math.sqrt(9)); // 开平方
    }

Random类的使用

// Random r = new Random();
        Random r = new Random(1111); // 通过种子算出随机数
        //有netFloat nexBoolean 具体可查看APi文档
        for (int i = 0; i < 10; i++) {
            // System.out.println(r.nextInt());
            System.out.println(r.nextInt(100));//100代表的是返回一个100以内的数
        }

system类的使用

/**
     * system类 
     * 1.有属性设置接口,可以查看java的版本,系统版本, 文件分隔符,用户名称,用户目录。并且还可以修改这些属性。
     * 2.可以设置in,out,err的标准输出,并且可以重定向。
     * 3.可以设置环境变量。
     * 4.可以立即启用垃圾回收机制。
     * 5.退出程序。
     */
    public static void main(String[] args) {
        //demo1();
        //demo2();
        long start = System.currentTimeMillis();

        for(int i = 0; i < 100000; i++) {
            System.out.print("*");
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);
    }

    public static void demo2() {
        Person p1 = new Person("张三", 23);
        System.out.println(p1);

        System.exit(0);                     //退出jvm虚拟机
        Person p2 = new Person("李四", 24);
        System.out.println(p2);
    }

    public static void demo1() {
        Person p = new Person("张三", 23);
        System.out.println(p);
        p = null;
        System.gc();                    //启动垃圾回收
    }

BigInteger的使用

/**
     * 可以操作一个很大的整数集
     * public BigInteger add(BigInteger val) 
     * public BigInteger subtract(BigIntegerval) 
     * public BigInteger multiply(BigInteger val) 
     * public BigInteger divide(BigInteger val) 
     * public BigInteger[] divideAndRemainder(BigInteger val)
     * 
     */
    public static void main(String[] args) {
        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的使用

/**
     * @param args
     * BigDecimal的出现是为了更精确计算小数
     *public BigDecimal add(BigDecimal augend)
    * public BigDecimal subtract(BigDecimal subtrahend)
    * public BigDecimal multiply(BigDecimal multiplicand)
    * public BigDecimal divide(BigDecimal divisor)
     */
    public static void main(String[] args) {
        //System.out.println(2.0 - 1.1);
        /*BigDecimal b1 = new BigDecimal(2.0);      //用double数当作参数可以,但是开发不用
        BigDecimal b2 = new BigDecimal(1.1);

        System.out.println(b1.subtract(b2));
        BigDecimal b1 = new BigDecimal("2.0");      //推荐使用  
        BigDecimal b2 = new BigDecimal("1.1");
        System.out.println(b1.subtract(b2));*/

        BigDecimal b1 = BigDecimal.valueOf(2.0);    //推荐使用
        BigDecimal b2 = BigDecimal.valueOf(1.1);
        System.out.println(b1.subtract(b2));
    }

Date对象的使用

/**
     * 1.可以获取到年月日时分秒
     * 2.可以根据一个时间的毫秒值创建对象
     */
    public static void main(String[] args) {
        demo1();
        Date d1 = new Date();
        System.out.println(d1);
        d1.setTime(1000);                                   //设置毫秒值
        System.out.println(d1.getTime());                   //获取当前时间对象的毫秒值
        System.out.println(System.currentTimeMillis());
    }

    public static void demo1() {
        Date d1 = new Date();               //获取当前时间
        System.out.println(d1);
        d1.
        Date d2 = new Date(1000);           //根据指定的毫秒值创建时间对象
        System.out.println(d2);
    }

DateFormate的使用

/**
     * 格式化时间对象
     */
    public static void main(String[] args) throws ParseException {
        //demo1();
        String str = "2012年3月22日 08:30:30";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(str);                    //将日期字符串转换成日期对象
        System.out.println(d);
    }

    public static void demo1() {
        Date d = new Date();
        DateFormat df = DateFormat.getDateInstance();       //返回DateFormat的子类对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

        System.out.println(d);
        System.out.println(df.format(d));
        String time = sdf.format(d);
        System.out.println(time);       //继承自DateFormat
    }

calender类的使用

/**
     * @param args
     * public void add(int field,int amount)
     * public final void set(int year,int month,int date)
     */
    public static void main(String[] args) {
        demo1();
        Calendar c = Calendar.getInstance();
        //c.add(Calendar.MONTH, -3);                    //(int field,int amount)amout变量对前面的日期字段增加或减少(根据正负数)
        //c.set(Calendar.YEAR, 2000);
        c.set(2008, 2, 8);
        System.out.println(c.get(Calendar.YEAR));
        System.out.println(c.get(Calendar.MONTH) + 1);
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
    }

    public static void demo1() {
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);            //通过指定的字段获取日期值
        System.out.println(year);
        int month = c.get(Calendar.MONTH);
        System.out.println(month + 1);
        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值