我的定位:中高级人才(框架熟练、Java语法精通、数据库会用、Linux会用、中间件会用、有大数据经验!)
开始,我以为自己什么都知道。后来发现,其实我什么都不知道。

String类的常用方法

public class StringTest {
    
    @Test  
    public  void  test01(){
        String  str1="abcd";
        String  str2="ABCD";
        System.out.println("字符串的长度:"+str1.length());
        System.out.println("比较两个字符串的内容:"+str1.equals(str2));
        System.out.println("比较两个字符串的内容(忽略大小写):"+str1.equalsIgnoreCase(str2));
        System.out.println("把str1变成大写:"+str1.toUpperCase());
        System.out.println("把str2变成小写:"+str1.toLowerCase());
    }
    @Test  
    public  void  test02(){
        String  str1="abcd";
        //把字符串转换成   字符数组
        char[] arrays = str1.toCharArray();
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }
    }
    
    
    @Test  
    public  void  test03(){
        String  str1="a+b+c+d";
        //   ^[0-9]{11}$  正则表达式  !!
        //根据指定的规则 把字符串拆分成  字符串 数组
        String[] split = str1.split("\\+");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
    }
    
    @Test  
    public  void  test04(){
        String  str1="12345@qq.com";
        //查询@在字符串中出现的位置
        int  index=str1.indexOf("@");   //下标从0开始
        System.out.println("@在字符串中出现的位置:"+index);
        //查询q在字符串中最后一次出现的位置
        int  index2=str1.lastIndexOf("q");
        System.out.println("q在字符串中最后一次出现的位置:"+index2);
        //获取@之后的所有字符串   subString(int  beginIndex) 包含beginIndex
        System.out.println("获取@之后的所有字符串:"+str1.substring(index+1));
        /*
         * 查询  qq
         * subString(int  beginIndex,int  endIndex)
         * 01.找到点的位置
         * 02.不包含 endIndex
         */
        int  index3=str1.indexOf(".");  
        String result = str1.substring(index+1, index3);
        System.out.println("result====>"+result);
    }
    
    
    
    @Test  
    public  void  test05(){
        String  str1=" abc def ";
        System.out.println("空格计算长度:"+str1.length());
        //去除字符串两边的空格  
        str1=str1.trim();  
        System.out.println("去除空格之后内容:"+str1);
        System.out.println("去除空格之后:"+str1.length());
    }
    
    @Test  
    public  void  test06(){
        String  str1="abcdef";
        //把a替换成6
        str1 = str1.replace("a", "6");
        System.out.println(str1);
        //是否以6开始
        System.out.println("是否以6开始:"+str1.startsWith("6"));
        System.out.println("是否以a结尾:"+str1.endsWith("a"));
    }
    
    
    @Test  
    public  void  test07(){
        String  str1="abcdef";
        //截取一个字符  返回值是char
        char a =str1.charAt(3);
        System.out.println(a);
    }
    
    @Test  
    public  void  test08(){
        String  str1="abcdef";
        //将字符存储在字节数组中
        byte[] bytes = str1.getBytes();
        for (byte b : bytes) {
            System.out.println((char)b);
        }
    }
    
    @Test  
    public  void  test09(){
        String  str1="abc";
        String  str2="def";
        //之前的字符串相加
        System.out.println(str1+str2);
        //现在concat(String  str)
        System.out.println(str1.concat(str2));
    }
    
    @Test  
    public  void  test10(){
        String  str1="abc";
        //是否包含某个指定的字符
        System.out.println("是否包含a这个字符:"+str1.contains("a"));
    }
}

 String,StringBuffer,StringBuilder三者区别

/*
     * String,  StringBuffer ,StringBuilder三者的区别
     * 01.在执行速度
     *    StringBuilder  >  StringBuffer  >  String
     * 02.StringBuilder:多线程不安全,适合单线程
     *    StringBuffer:线程安全
     *    String  :   数据量小的时候使用
     * 03.String   是不可变的!  每当我们操作字符串的时候,都会创建一个新的对象!
     *   StringBuilder,StringBuffer当我们操作字符串的时候,实际上是在操作一个对象!
     */
    
    @Test
    public  void test11(){
        //01.定义变量
        String   name="xiaohei";
        //02.定义操作字符串的次数
        int  count=2000000;
        //03.设置开始时间
        long beginTime=System.currentTimeMillis();
        for (int i = 0; i <count/100; i++) {  
            name+="haha";
        }
        //03.设置结束时间
        long endTime=System.currentTimeMillis();
        System.out.println("String的执行时间:"+(endTime-beginTime));
        System.out.println("****************************");
        name="xiaohei";
        //04.使用StringBuffer
        StringBuffer buffer=new StringBuffer(name);
        beginTime=System.currentTimeMillis();
        for (int i = 0; i <count; i++) {  
            buffer=buffer.append("haha");
        }
        endTime=System.currentTimeMillis();
        System.out.println("StringBuffer的执行时间:"+(endTime-beginTime));
        System.out.println("****************************");
        name="xiaohei";
        //05.使用StringBuilder
        StringBuilder builder=new StringBuilder(name);
        beginTime=System.currentTimeMillis();
        for (int i = 0; i <count; i++) {  
            builder=builder.append("haha");
        }
        endTime=System.currentTimeMillis();
        System.out.println("StringBuilder的执行时间:"+(endTime-beginTime));
        
    }

 

posted @ 2017-06-29 13:02  想太多先森  阅读(130)  评论(0编辑  收藏  举报