JavaSE基础之包装类&String

1.基本数据类型的包装类

        装箱:自动将基本数据类型转为包装类型

        拆箱:自动将包装类型转为基本数据类型

基本类型包装类类型
byteByte
charCharacter
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

                以int为例:

        // int--->Integer
        Integer i1 = new Integer(1);
        Integer i2 = Integer.valueOf(10);

        // Integer--->int
        int i3 = i1.intValue();

        // String--->int
        int i4 = Integer.parseInt("123");

        // int--->String
        String string=i4+"";

        // String--->Integer
        Integer i5 = Integer.valueOf("456");

        // Integer--->String
        String str=i1.toString;

2.String类

        主要包括:String、StringBuilder、StringBuffer

                a.String的常用方法:

        String s1 = "qwer";
        // 1 char chatAt(int index) : 获取字符串中,某个位置上的字符,相当于 arr[index]
        char c1 = s1.charAt(2);
        System.out.println(c1);

        // 2 endsWith(String suffix) : 判断字符串是否以指定字符串结尾
        // startsWith(String prefix) 判断开始
        System.out.println("Hello.java".endsWith(".java")); // true

        System.out.println("Hello.java".endsWith(".java ")); // false 注意 空格

        // 3 equalsIgnoreCase(String anotherString) : 不区分大小写比较两个字符串是否相等
        System.out.println("abc".equals("ABC"));
        System.out.println("abc".equalsIgnoreCase("ABC"));

        // 4 getBytes(); : 把字符串转换为字节数组
        byte[] bytes = "abc".getBytes();
        for (byte b : bytes) {
            System.out.println(b);
        }

        // 5 indexOf(String str) : 获取指定字符串的起始索引,找不到就返回-1
        System.out.println("cniuhaushd213hxhdd2".indexOf("d2")); // 9

        // 6 indexOf(String str,int fromIndex) : 从指定位置开始查找,找不到返回-1
        System.out.println("cniuhaushd213hcxhdd2".indexOf("c", 1));// 14

        // 7 lastIndexOf(String str) : 最后一次出现位置的索引,找不到返回-1
        System.out.println("cniuhaushd213hcxhdd2".lastIndexOf("c"));// 14

        // 8 length() : 获取字符串长度
        System.out.println("abc".length());

        // 9 replaceAll(String regex,String replacement) : 把指定字符换为指定字符
        /**
         * 还有一个方法 replace 这两个功能一样,只不过 replaceAll 支持正则表达式
         */
        System.out.println("12h,dha!sioh@#213!23><".replaceAll("[^0-9a-zA-Z]",             ""));// a23a4a52

        // 10 split(String regix) : 分割字符串,需要指定分隔符,返回值是字符串数组,支持正则表达式
        String myTime = "2008,08,08";
        // 如果是 以 .分割,需要 \\. 因为split支持正则表达式,而 . 在正则表达式中有特殊含有,所以需要转义
        // 在正则表达式中,通过 \. 对 . 进行转义,但是 \ 在java中也是 转移符,所以 需要 \\.,来转义 \
        String[] ymd = myTime.split(",");
        for (String string : ymd) {
            System.out.println(string);
        }

        // 11 substring(int begin) : 获取该字符串以某个下标(包含该下标)开始截取余下的子字符串
        System.out.println("abcdefg".substring(2));// cdefg

        // 12 substring(int beginIndex,int endIdex); :
        // 以某个下标开始(包含),到某个下标结束的子字符串(不包含)
        System.out.println("abcdefg".substring(2, 6));// cdef

        // 13 toCharArray() : 转换为char数组
        char[] c2 = "qwer".toCharArray();
        for (char c : c2) {
            System.out.println(c);
        }

        // 14 转大写和小写
        System.out.println("asdUId".toUpperCase());// 大写
        System.out.println("asdUId".toLowerCase());// 小写

        // 15 trim() : 去除字符串首尾的空格
        System.out.println("            1     dcz s           ".trim());

        // 16 valueOf(Object obj) : 调用对象的toString方法,并处理null值

                b.StringBuffer和StringBuilder:是可变的字符串缓冲区,可以自动扩容

                        两者的区别:

                                StringBuffer:线程安全,在多线程下不会出问题,常用于类中;

                                StringBuilder:非线程安全,多线程下,可能会出问题,常用方法中;其次运行速度最快

3.Math类

        // abs:绝对值
        System.out.println(Math.abs(-10));//10
        // ceil:向上取整
        System.out.println(Math.ceil(2.4));//3.0
        // floor:向下取整
        System.out.println(Math.floor(2.4));//2.0
        // sqrt:开平方
        System.out.println(Math.sqrt(4));//2.0
        // cbrt:开立方
        System.out.println(Math.cbrt(8));//2.0
        // random:随机数(0-1)
        System.out.println(Math.random());//0.5240869750300419
        // rint:四舍五入,小于xxx.5的时候取偶数
        System.out.println(Math.rint(2.4));//2.0
        System.out.println(Math.rint(2.6));//3.0

        Random随机数:从0开始,到指定的数进行随机生成

        Random r = new Random();
        // 从0-10(不包含10)随机生成
        int random = r.nextInt(10);

4.Date类


        Date date = new Date();

        // 传入一个日期模板字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        // 对日期格式化
        String cTime = sdf.format(date);

        // String类型转Date类型
        String str = "2020年07月15日 14:47:54 841";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd天 HH:mm:ss SSS");
        Date date2 = sdf2.parse(str);

        // 日历
        // 获取当前日历
        Calendar c = Calendar.getInstance();
        // System.out.println(c);

        // 获取今天是本周的第几天,周日是第一天
        System.out.println(c.get(Calendar.WEEK_OF_MONTH));
        // 今天是本月第几天,也就是多少号
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        // 获取月,范围是0~11 所以 获取到之后 +1 就是当前月份
        System.out.println(c.get(Calendar.MONTH) + 1);
        // 获取年
        System.out.println(c.get(Calendar.DAY_OF_YEAR));
        // 获取 时 12小时
        System.out.println(c.get(Calendar.HOUR));
        // 24小时
        System.out.println(c.get(Calendar.HOUR_OF_DAY));

        // 获取指定时间的日历
        String str2 = "2021.3.15";
        Date date3 = new SimpleDateFormat("yyyy.MM.dd").parse(str2);
        c.setTime(date3);
        System.out.println(c.get(Calendar.DAY_OF_MONTH));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值