java-String、包装类-day13

String

1.重要方法

1.intern():把指向转向到方法区

 //
       /* String str1="abc";
        String str2=new String("abc");
        //把指向转向到方法区
        str2=str2.intern();
        //str1=str1.intern();
        //
        System.out.println(str1==str2);*/

2.isEmpty():判断字符串对象内容是否为空

  //空串---对象已经创建但是没有具体内容
        String str1="";//空串
        String str2=new String();//空串
        String str3=new String("");//空串
        //null---地址值不指向任何内存区域
        //空不是null,null不是空
        String str4=null;
        //判断字符串对象是否是空串
        System.out.println(str3.isEmpty());
3.matches():填入正则语法来匹配对应信息
package cn.tedu.pattern;

public class PatternDemo1 {
    public static void main(String[] args) {
        //
        String str="1";

        //匹配内容只有abc的字符串
        //正则提供的语法---可以直接写出匹配内容
        //System.out.println(str.matches("abc"));

        //匹配内容只有一个数字的字符串
        //[起始-结束]---匹配起始到结束范围内的任意一个数据
        //System.out.println(str.matches("[0-9]"));
        //\\d--字符串转义--\d--正则转义--[0-9]
        System.out.println(str.matches("\\d"));

        //.代表一个任意字符
        //*代表数量词,表示前面的符号可以出现次数
        //*代表可以不出现也可以出现多次
        //System.out.println(str.matches(".*"));
    }
}

4.replaceAll():根据填入正则语法来匹配对应信息,再把匹配到的信息替换成新的指定内容

package cn.tedu.pattern;

import java.util.Arrays;

public class PatternDemo2 {
    public static void main(String[] args) {
        //
        String str="我2是3大4776";

        //根据正则匹配的信息替换成新的内容
        //System.out.println(str.replaceAll("\\d","*"));

        //对字符串数字进行排序
        //把字符串中所有的非数字字符替换成空串
        //调用方法返回的新串给原串来赋值
        str=str.replaceAll("\\D","");
        //转成字符数组
        char[] cs=str.toCharArray();
        //排序
        Arrays.sort(cs);
        //
        System.out.println(Arrays.toString(cs));
    }
}

5.split():根据填入正则语法匹配对应信息,把匹配到信息当做切割符来切割字符串
package cn.tedu.pattern;

import java.util.Arrays;

public class PatternDemo3 {
    public static void main(String[] args) {
        //
        String str="16asd4dv699f7a80";

        //根据填入正则语法匹配对应信息,把匹配到信息当做成切割符来切割字符串
        //当切割符出现在后面直接切掉,当出现在前面切出空串
        //当切割符出现多个且在前面有几个切割符就切割出几个空串
        //当切割符出现多个且在中间有几个切割符就切割出个数减一个空串
        //当切割符出现多个且在后面无论有几个切割符都要切掉
        String[] ss=str.split("\\d");

        //输出数组内容
        System.out.println(Arrays.toString(ss));

    }
}

6.replace():把指定内容替换成新的内容

 /*  //
        String str="wejhevbe";

        //把指定的内容替换成新的内容
        System.out.println(str.replace('e','+'));*/

7.subString():根据指定下标来截取子串

 //
        String str="wdjhfb";
        //按照指定下标来截取子串
        System.out.println(str.substring(2));
        //左包右不包(含头不含尾)
        System.out.println(str.substring(1,4));

8.toLowerCase/toUpperCase:转小写/大写
9.toString():String类重写Object类里方法,获取对象时获取的是对象的内容而不是地址值(字符处对象有地址值)
10.trim():把前面和后面的空格删除

public static void main(String[] args) {
        //
        String str=" dfv\t7 ";
        //
        System.out.println(str+"A");
        //删除开头以及结尾的空格---掐头去尾
        System.out.println(str.trim()+"A");
    }

11.valueOf():支持所有类型数据转成字符串形式

package cn.tedu.string;

public class StringDemo4 {
    public static void main(String[] args) {
       /* //把double类型数据转成字符串形式的数据
        String s=String.valueOf(2.3);
        //把boolean类型数据转成字符串形式的数据
        String s1=String.valueOf(true);
        System.out.println(s1);*/


        //
        int[] arr={1,2,3};
        //底层String.valueOf()接收arr数组
        //调用Object类里toString方法拼接地址值来返回
        System.out.println(arr);
        char[] cs={'a','b','5'};
        //底层没有执行String.valueOf方法没有调用Object类里
        //toString方法没有拼接地址值,直接输出的是内容
        System.out.println(cs);
        //直接用数组对象调用Object类里toString来拼接地址值
        System.out.println(cs.toString());
    }
}

2.正则表达式

针对字符串中的关键信息来进行匹配
练习:
1.给定字符串输出每个字符的次数(replaceAll() 晚自习)

包装类

1.概念

为了方便、快捷的去操作基本类型数据,java
提供基本 类型对应的包装类。只能创建出包
装类的对象就能提供操作基本类型的数据的
便捷性。

byte  short  char      int     long float double boolean
Byte  Short  Character Integer Long Float Double Boolean

注意
1.除了Character以及Integer之外其他包装类都是首字母大写
2.由基本类型数据来构建包装类对象—封箱
3.基本类型数据直接赋值给包装类的对象—自动封箱
包装类.valueOf(基本类型数据 )
包装类对象直接赋值给基本类型数据—自动拆箱
包装类对象.xxxValue()
4.自动封箱/拆箱是jdk1.5新特性

package cn.tedu.baozhuang;

public class BZDemo1 {
    public static void main(String[] args) {
        //定义变量
        //int i=1;

        //创建Integer类的对象
        //由基本类型数据来构建包装类的对象---封箱
        //Integer in=new Integer(i);
        //把基本类型数据直接赋值给包装类的对象---自动封箱
        //底层实现---Integer in=Integer.valueOf(i);
        //自动封箱底层实现---包装类.valueOf(基本类型数据)
        //自动封箱是jdk1.5的新特性
       /* Integer in=i;

        //自动封箱
        //底层实现---Character c=Character.valueOf('a');
        Character c='a';
        //
        System.out.println(in);*/



        Integer in=new Integer(1);
        //包装类对象直接赋值给基本类型数据---自动拆箱
        //底层实现---int i=in.intValue();
        //自动拆箱底层实现---包装类对象.xxxValue();
        //自动拆箱是jdk1.5新特性
        int i=in;
        //
        Double d=new Double(2.3);
        //
        //底层实现---double d1=d.doubleValue();
        double d1=d;
        //
        System.out.println(i);
    }
}

5.当整型包装类做自动封箱时,在-128127之间共享同一个数组,但是超过这个范围每次返回一个新对象(character共享范围是(0127))

package cn.tedu.baozhuang;

public class BZDemo2 {
    public static void main(String[] args) {
        //自动封箱
        //Integer.valueOf(1)
        //在-128~127之间共享同一个数组,但是超了这个范围每次返回一个新对象
        /*Integer in1=1;
        Integer in2=1;
        //
        System.out.println(in1==in2);*/

        //Byte在-128~127之间共享同一个数组
        //Byte.valueOf((byte)1)

        //Short在-128~127之间共享同一个数组
        //Short.valueOf((short) 2)

        //Character在0~127之间共享同一个数组
        //Character.valueOf('a')

        //
        //Boolean.valueOf( true)


        //
        int i=10;
        Integer in=100;
        //当包装类对象和基本类型数据进行操作时,会默认进行自动拆箱
        //拆箱成了对应的基本类型数据就可以接着做操作
        System.out.println(in+i);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值