String字符串操作

1.字符串值

字符串值在创建后就不能修改,但字符串缓冲区可以支持可变字符串,在官方API官方文档中说到字符串值是不可变的,在字符串的源码中,字符串的底层是一个char[]数组组成的,byte数组中的值的用final修饰的,表示值是不可被修改的,而且也没有提供方法去修改字符串的值

2.字符串是一个常量,也是一个对象

例如:“abc”.方法,或者new.String().方法;

        //常量
        "ss".length();
        //对象
        String s1 = new String();
        s1.length();
3.String拼接“+”操作

在官方Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。 字符串连接是通过StringBuilder (或StringBuffer )类及其append方法实现的,然后通过toString方法来实现转换字符串

        String s1 = "ss";
        /*在进行+字符串拼接是时,在底层会new一个StringBuilder(或StringBuffer)对象出来,
        然后通过append方法实现字符串拼接的 ,所以说拼接后的“ssss”是存储到堆中的*/
        s1=s1+"ss";
        //s2值存储到常量池中
        String s2="ssss";
        System.out.println(s1==s2);
3.编码、解码、字符编码表

编码:将字符串转换为byte数据
解码:将byte数据转换为字符串
乱码:编码和解码不是同一个字符集,就会出现乱码
字符编码:
GBK --> 中文编码,一个汉字表示2个字节
UTF-8 --> 万国码,所有的国家的文字都能在在这张表找到,一个汉字表示3个字节
iso-8859-1 --> 西欧编码

 /*
        编码:将字符串转换为byte数据
        解码:将byte数据转换为字符串
         */

        //编码:将字符串转换为byte数据
        String s = "Hello,Word";
        byte[] bt= s.getBytes();
        System.out.println("编码:"+Arrays.toString(bt));

        //解码:将byte数据转换为字符串
        String s1 = new String(bt);
        System.out.println("解码:"+s1);

在这里插入图片描述

4.String常用方法

在这里插入图片描述

public static void main(String[] args) {
        /**
         * equals 比价字符是否相等和equalsIgnoreCase忽略大小写
         *
         * charAt(索引),获取指定位置的字符,返回值是char
         *
         * toCharArray(),转换字符数组,可以单独拿出来
         *
         * substring(索引值1,索引值2),截取字符,包头不包尾
         *
         * indexOf(字符串),获取字符串的下标,重复的获取第一个出现的
         *
         * lastIndexOf(字符串),获取字符串的下标,重复的获取最后个出现的
         *
         * replace("",""),字符串进行替换
         *
         * split(),以字符串为分界限进行分割成字符串数组
         *
         * trim(),去掉字符串两端的空格
         *
         */

        //charAt(索引),获取指定位置的字符,返回值是char
        String a = "你好,你这次的验证码为:786452,请你打死都要告诉别人";
        for (int i = 0; i < a.length(); i++) {
            char b =a.charAt(i);
            System.out.print(b+"\t");
        }

        //toCharArray(),转换字符数组,通过下标可以单独拿出来
        System.out.println();
        char[] c=a.toCharArray();
        System.out.println(c[1]);


        //substring(索引值1,索引值2),截取字符,包头不包尾
        System.out.println(a.substring(0,3));

        //indexOf(字符串),获取字符串的下标,重复的获取第一个出现的下标,返回类型为int
        System.out.println(a.indexOf("你"));

        //lastIndexOf(字符串),获取字符串的下标,重复的获取最后个出现的,,返回类型为int
        System.out.println(a.lastIndexOf("你"));




        //replace("原字符","新字符"),字符串相同的进行全部替换
        System.out.println(a.replace(",","?"));


        //split(),以字符串为分界限进行分割成字符串数组
        String str1 = "ui78,8huh,jf87,uie8,ujkdf90,hu67ghj,894ghk";
        /**
         * 声明字符串数组str2
         */
        String[] str2 = str1.split(",");
        /**
         * 遍历字符串数组
         */
        for(int i = 0;i<str2.length;i++)
        {
            System.out.println("第" + i + "个:" + str2[i]);
        }


         /*
          思考:通过indexOf、substring方法,怎么获取到验证码?
         */

        int x = a.indexOf(":");
        System.out.println(a.substring(x+1,x+7));




    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值