zoukankan      html  css  js  c++  java
  • 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));
            
        }
  • 相关阅读:
    免费的视频、音频转文本
    Errors are values
    Codebase Refactoring (with help from Go)
    Golang中的坑二
    Cleaner, more elegant, and wrong(msdn blog)
    Cleaner, more elegant, and wrong(翻译)
    Cleaner, more elegant, and harder to recognize(翻译)
    vue控制父子组件渲染顺序
    computed 和 watch 组合使用,监听数据全局数据状态
    webstorm破解方法
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7093917.html
Copyright © 2011-2022 走看看