String类中的常用方法介绍,以及StringBuffer和StringBuilder进行字符串拼接

public class Test {
    public static void main(String[] args) {

        String s1 = "abc";
        String s2 = "abc";

        //s1 s2 都是指向方法区字符串常量池中的“abc”
        System.out.println(s1 == s2);//true

        //分析下面两条代码创建了几个对象
        //3个 s3 s4 "xyz"
        String s3 = new String("xyz");
        String s4 = new String("xyz");

        //s1 s2 指向堆区中对象的地址,而该对象指向字符串常量池中的“xzy”
        System.out.println(s3 == s4);//false
        //String类重写了equals方法
        System.out.println(s3.equals(s4));//true

        //字节数组
        byte[] bytes = {97,98,99,100};

        //String中的重要构造方法
        //全部转换成字符串
        String s5 = new String(bytes);
        System.out.println(s5);

        //String(字节数据,元素下标起始位置,目标长度)
        //将数组的一部分元素转换成字符串
        //其他类型数组同理
        String s6 = new String(bytes,1,3);
        System.out.println(s6);

        //String中常用的方法

        //(掌握) public char charAt(int index)
        //返回指定位置的元素
        char c = "java".charAt(1);
        System.out.println(c);

        //(了解) public int compareTo(String anotherString)
        //按字典顺序比较两个字符串
        // 返回值类型为int
        System.out.println("abc".compareTo("abc"));//0 前后一致
        System.out.println("abcd".compareTo("abce"));//-1 前小后大
        System.out.println("abce".compareTo("abcd"));//1 前大后小

        System.out.println("abc".compareTo("abe"));//-2

        //(掌握) public boolean contains(CharSequence s)
        //判断前面的字符串是否包含后面的字符串
        System.out.println("abcde".contains("bcd"));//true

        //(掌握) public boolean endsWith(String suffix)
        //判断当前字符串是否以某个字符串结尾
        System.out.println("abcde".endsWith("de"));//true

        //equals方法(掌握)

        //(掌握) public boolean equalsIgnoreCase(String anotherString)
        //比较两个字符串是否相等忽略大小写
        System.out.println("aBc".equalsIgnoreCase("AbC"));//true

        //(掌握) public byte[] getBytes()
        //将字符串转换成byte数组
        byte[] bytes1 = "abc".getBytes();
        for (int i = 0; i < bytes1.length; i++) {
            System.out.print(bytes1[i] + " ");//97 98 99
        }
        System.out.println();

        //(掌握) public int indexOf(String str)
        //判断某个子字符串在当前字符串中第一次出现处的索引
        System.out.println("c++c#java".indexOf("java"));//5

        //(掌握) public boolean isEmpty()
        //判断某个字符串是否为空
        System.out.println("".isEmpty());//true
        System.out.println("aa".isEmpty());//false

        //(掌握) public int length()
        //面试题:判断数组长度和判断字符串长度不一样
        //判断数组长度是length属性,判断字符串长度是length方法
        System.out.println("abc".length());//3
        System.out.println("".length());//0

        //(掌握) public int lastIndexOf(String str)
        //判断某个字符串在当前字符串中最后一次出现的索引
        System.out.println("qwertyqwert".lastIndexOf("qw"));//6

        //(掌握) public String replace(CharSequence target,CharSequence replacement)
        //替换
        System.out.println("projavt".replace("av","ec"));//project

        //(掌握) public String[] split(String regex)
        //拆分字符串
        String[] strings = "2020-10-14".split("-");//以 - 分隔符进行拆分
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);//2020 10 14
        }

        //(掌握) public boolean startsWith(String prefix)
        //判断当前字符串是否以某个字符串开始
        System.out.println("abcde".startsWith("ab"));//true

        //(掌握) public String substring(int beginIndex)
        //截取字符串
        System.out.println("abcde".substring(2));//cde

        //(掌握) public String substring(int beginIndex, int endIndex)
        //截取字符串
        //beginIndex开始的下标,包括。
        //endIndex的结束的下标,不包括
        System.out.println("abcde".substring(2,4));//cd  左闭右开

        //(掌握) public char[] toCharArray()
        //将字符串转换成char数组
        char[] chars = "abc".toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);//a b c
        }

        //(掌握) public String toLowerCase()
        //转换成小写
        System.out.println("ABC".toLowerCase());//abc

        //(掌握) public String toUpperCase()
        //转换成大写
        System.out.println("abc".toUpperCase());//ABC

        //(掌握) public String trim();
        //去掉前后空白
        System.out.println("              abe                ".trim());//abe

        //(掌握) public static String valueOf(将非字符串转换成字符串)
        //String中只有这一个静态方法,不需要new对象去调用
        String string = String.valueOf(1);
        System.out.println(string);// 字符串1

        //创建一个初始化容量为16的byte数组(字符串缓冲区对象)
        //初始化时,预计一下初始容量
        //关键点给一个合适的初始化容量,提高程序运行效率
        StringBuffer stringBuffer = new StringBuffer();

        //字符串拼接
        stringBuffer.append("a");
        stringBuffer.append("b");
        stringBuffer.append("c");
        stringBuffer.append(true);
        stringBuffer.append(3.14);

        System.out.println(stringBuffer);

        //StringBuilder和StringBuffer的作用相同
        //区别是StringBuilder是非线程安全的 StringBuffer是线程安全的
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值