• String类系列(就是数组练习)


    String(不可变字符序列)

    常用方法

    equalsIgnoreCase        忽略大小写   System.out.println( "Abcd".equalsIgnoreCse("abcd"));

    indexOf                         索引    System.out.println( "Abcd".indexOf("b"));

    lastIndexOf                    反向索引  System.out.println( "Abcd".lastIndexOf("b"));

    startsWith       以什么开头 System.out.println( "Abcd".startsWith("Ab"));

    endsWith        以什么结束 System.out.println( "Abcd".endsWith("cd"));

    代码示例:

    package cn.String;
    
    public class TestString {
        public static void main(String[]args) {
            String str =new String("abcd");
            String str2=new String("abcd");
            System.out.println(str.equals(str2));  //比较内容是否相等     True
            System.out.println(str2==str);        //false
            
            System.out.println(str.charAt(3)); //查询内容
            
            String str3="def";
            String str4="def";
            System.out.println(str3.equals(str4));  //True
            System.out.println(str3==str4);            //True
            
            System.out.println(str3.indexOf('f'));  //2  查询索引号
            String s=str3.substring(1);                //截取字符串
            System.out.println(s);                  //有指定的打印字符串     
            String str5=str3.replace('e', 's');        //字符串替换
            System.out.println(str5);
            
            String str6="abcde,rrtt,cccee";
            String strArray[]=str6.split(",");   //用逗号使其分开转化为数组
            for(int i=0;i<strArray.length;i++) {
                System.out.println(strArray[i]);
            }
            
            String str7="  aa bb  ";
            System.out.println(str7.length());     //9
            String str77=str7.trim();              //切去没有用的部分
            System.out.println(str77.length());    //5
            
            System.out.println("Abc".equalsIgnoreCase("abc")); //true
            System.out.println("Abcdfb".indexOf('b'));           //1  查看索引号
            System.out.println("Abcdfbeb".lastIndexOf('b'));       //5 查询最后一个
            System.out.println("Abc".startsWith("Ab")); //true   以什么开始
            System.out.println("Abc".endsWith("c")); //true      以什么结束
            
            System.out.println("Abcdfbeb".toLowerCase());  //abcdfbeb 转化为小写   
            System.out.println("Abcdfbeb".toUpperCase());  //ABCDFBEB 转化为大写
            
            String gh="a";
    //注意:字符串拼接,一共11个对象,如果String gh=new String("a"),遍历后有12个对象,a是一个new String 也是一个.
            for (int i = 0; i < 10; i++) { 
                gh+=i;
            }
            System.out.println(gh);
            
        }
    }

    StringBuilder    StringBuffer(可变字符序列)

    两者源码几乎一样

    不同点:

    StringBuider:    线程不安全,效率高

    StringBuffer:     线程安全,效率低

    我们使用的是局部变量,一般使用StringBuilder

    示例:

    package cn.stringbuilder;
    
    public class Test01 {
        public static void main(String[] args) {
            StringBuilder sb=new StringBuilder();   //字符数组长度初始为16
            StringBuilder sb1=new StringBuilder(32);   //字符数组长度初始为32
            StringBuilder sb2=new StringBuilder("abcd");//字符数组长度为20  value[]={'a','b','c','d',u0000,u0000...}
            sb2.append("efg");
            sb2.append("sun").append(true).append("哈哈");//通过return this 实现方法链
            System.out.println(sb2);
            
            StringBuilder gh=new StringBuilder('a');  //'a'是一个对象,new StringBuilder是一个对象,总共两个对象.省内存.
            for (int i = 0; i < 100; i++) {
                gh.append(i);
            }
            System.out.println(gh);
            
        }
    }

    内存优化小总结:

    代码对比

    第一种 
    
    String gh="a";
    //注意:字符串拼接,一共11个对象,如果String gh=new String("a"),遍历后有12个对象,a是一个new String 也是一个.
            for (int i = 0; i < 10; i++) { 
                gh+=i;
            }
            System.out.println(gh);
    
    第二种
    
    
            StringBuilder gh=new StringBuilder('a');  //'a'是一个对象,new StringBuilder是一个对象,总共两个对象.省内存.
            for (int i = 0; i < 100; i++) {
                gh.append(i);
            }
            System.out.println(gh);

    推荐第二种,省内存。

  • 相关阅读:
    Mathematica 计算矩阵的伴随矩阵
    教你如何在word中像LaTex那样打出漂亮的数学公式
    中国科学院大学2016年硕转博考试试题
    161024解答
    161023解答
    161020-1解答
    关于查询扩展版ESI高被引论文的说明
    [Tex学习笔记]让项目编号从4开始
    [Tex学习]WinEdit 常用软件快捷键
    最著名的数学家一般也是最著名的力学家
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11193797.html
Copyright © 2020-2023  润新知