string

字符串

String str = “abc”;
字符串是类,是引用的数据类型
这是定义了一个字符串的常量。常量是不可改变的量,字符串是不能改变的。

字符串的构造器

字符串常量是一种定义的方式
字符串需要有其他形式的构造器,比如可以通过字符的数组,字节数组,io流中的数据等等 。

        byte[] bs = {97,98,99,100};
        //通过字节数组创建字符串
        String s2 = new String(bs);
        System.out.println(s2);

        //通过字节数组创建字符串,offset就是索引的开始位置,length取的长度
        String s3 = new String(bs, 1, 3);
        System.out.println(s3);

        char[] cs = {'b','a','g','h','g'};
        //通过字符的数组来创建一个字符串
        String s4 = new String(cs);
        System.out.println(cs);

        //通过字符数组创建字符串,offset就是索引的开始位置,
        String s5 = new String(cs, 2, 2);
        System.out.println(s5);


        //通过字符串的常量创建字符串的对象
        String s6 = new String("hello");
        System.out.println(s6);

区别
String s1 = new String (“abc”);
String s2 = “abc”;
有什么区别?
new String (“abc”);如果没有在字符串的常量池中没有abc就会在堆中创建一个对象,同时又在字符串常量池中也创建一个对象,然后用堆中的对象来引用字符串常量池中对象。实则创建了2个对象。
new String (“abc”); 如果在字符串的常量池中有abc,那么就会在堆中创建一个对象,直接引用已经存在的字符串常量池中的那个对象。

空字符串和null的区别
空字符串是有效的引用,有地址的,只不过是内容的长度是0。
null这个引用是空引用,不能使用。使用一定会报空指针的错误。
引用数据类型的默认值是null。

字符串的获取功能

 String s = "heleloworld";
        //获得一个字符串的长度
        int length = s.length();
        System.out.println(length);
        //根据索引号或者字符,索引不要越界
        char c = s.charAt(3);
        System.out.println(c);
        // 获得一个ascii对应字符在字符串中第一次出现的位置
        int i = s.indexOf(101);
        System.out.println(i);
        //获得一个字符串在母字符串中第一次出现的索引
        int el = s.indexOf("el");
        System.out.println(el);

        //从某一个索引开始向后数第一次出现的子字符串的索引
        int e = s.indexOf("el", 2);
        System.out.println(e);

        //截取指定的索引之后的字符串,包含索引处的字符
        String substring = s.substring(5);
        System.out.println(substring);

        //截取指定的开始索引和结束索引之间的字符串,包头不包尾
        String substring1 = s.substring(5, 8);
        System.out.println(substring1);

        String s1 = "abcde";
        //获得这个字符串对应的字符的数组
        byte[] bytes = s1.getBytes();
        System.out.println(Arrays.toString(bytes));
        //把字符串转换成字符的数组
        char[] chars = s1.toCharArray();
        System.out.println(Arrays.toString(chars));

        String s5 = "abcde我爱你中国15554555";
        //把字符串的字母部分变成大写
        String s6 = s5.toUpperCase();
        System.out.println(s6);

        String s7 = "ABCDE我爱你中国15554555";
        //把字符串大写字母变成小写
        String s8 = s7.toLowerCase();
        System.out.println(s8);

        //String concat = s5.concat(s7);
        String concat = s5+s7;
        //拼接两个字符串,了解即可
        System.out.println(concat);

补充

String s = "aaa-bbb-cccc-ddd";
        //把一个字符串按着某种字符拆分成数组
        String[] split = s.split("\\-");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }

        String s1 = "HelloWorld";

        //把字符串中的某个字符串替换成另一个字符
        String replace = s1.replace('l', 'x');
        System.out.println(replace);

        String s2 = "aaa-bbb-aaa-ddd";
        //把字符串中子字符串替换成另一个子字符串
        String replace1 = s2.replace("aaa", "kkk");
        System.out.println(replace1);

        String s3 = "    abc    ";
        //去掉字符串两边的空格
        String trim = s3.trim();
        System.out.println("|"+trim+"|");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值