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)); } 
    

      

  • 相关阅读:
    delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小
    学习 TTreeView [1]
    学习 TTreeView [3]
    学习官方示例
    踩方格(找规律 递推)
    踩方格(找规律 递推)
    普及组2008NOIP 排座椅(贪心+排序)
    普及组2008NOIP 排座椅(贪心+排序)
    POJ_3740 Easy Finding ——精确覆盖问题,DLX模版
    POJ_3740 Easy Finding ——精确覆盖问题,DLX模版
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7015681.html
Copyright © 2011-2022 走看看