zoukankan      html  css  js  c++  java
  • 黑马程序员_<<StringBuffer,包装类>>

    --------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------


    1. StringBuffer

         1.概述

             StringBuffer是一个容器,是字符串的缓冲区,线程安全序列

         2.特点

              长度可以变换,可以操作多种类型数组

    2.增加和插入

        1.在尾部插入数组,append(int a),此方法是子字符串的尾部插入的数据,有很多重载方法,此方法返回的是StringBuffer对象,还是本身对象

        2.在字符串的指定位置插入数据,用insert(int a),此方法也有很多重载的方法,此方法返回的是StringBuffer对象,还是本身对象

        3.StringBuffer   bu=new StringBuffer(“abc”);

         bu.insert(bu.length,”def”);和bu.append(“def”);是一样的。

     

    public class StringBufferDemo {
      public static void main(String [] agrs){
        StringBuffer  bu=new StringBuffer();
        bu.append("abc").append(123).append(true);//在尾部连续添加
        System.out.println("bu="+bu);
        bu.insert(3, "xx");//在3的位置插入"xx",就是在"abc"后面
        System.out.println("bu="+bu);
      }
    }
    结果:
    bu=abc123true
    bu=abcxx123true


     

    3. 一般操作

        1.获取subString();

         public  void getChars(int srcBegin,int srcEnd,char[] dst,
         int dstBegin)将字符串指定范围的字符串方法指定字节数组的范围内。
     
        2替换replay()
        3.删除 delete(start,end) deleteCharAt(int index)

     

     

    public class StringBufferDemo {
      public static void main(String [] agrs){
        StringBuffer  bu=new StringBuffer();
        bu.append("abc").append(123).append(true);//在尾部连续添加
        System.out.println("bu="+bu);
        char []cs=new char[5];
        bu.getChars(0, 4, cs, 1);//将bu中充0~4,包含0不包含4的字符方法字节数组中从1开始存放
        for(char c:cs)
          System.out.print(c+" ");
        bu.deleteCharAt(2);//将第三个字符删除
        System.out.println("bu="+bu);
        bu.delete(0, bu.length());//清空字符串
        System.out.println("bu="+bu);
       
      }
    }
     
     


    4. StringBuilder


    1.5版本之后才有的。线程不同步,不安全,但是能提高效率。可变的字符序列。简化书写,提高安全性用法和StringBuffer一样,其中也会有一个差异的。

      

    5. 包装类

    1. 概述

    包装类就是把基本数据类型封装成了包和对象,这样就可以使用对象来操作了。

    byte-----Byte  int-----Integer

     short-----Shortbyte-----Byte

    double-----Double float---Float

    char ---Character boolean---Boolean

    作用,一般就是用于数据类型和字符串之间的转换,基本数据类型转换成字符串和字符串转换成基本数据类型

     

    public class BaoZhuang {
      public static void main(String[] args) {
        String s1="123";
        int a=Integer.parseInt(s1);//将字符串转换成整形
           
        String s2=a+"abc";//将整形转换成字符串
        System.out.println("s1="+s1);
        System.out.println("a="+a);
        System.out.println("s2="+s2);
     
      }
    }
    结果:
    s1=123
    a=123
    s2=123abc
     


    2. 进制转换

     

     

    public class BaoZhuang {
      public static void main(String[] args) {
     
        System.out.println("10转换成二进制:" + Integer.toBinaryString(10));
        System.out.println("10转换成八进制:" + Integer.toOctalString(10));
        System.out.println("10转换成十六进制:" + Integer.toHexString(10));
     
        System.out.println("110转换成十进制:" + Integer.parseInt("110", 2));
        System.out.println("076转换成十进制:" + Integer.parseInt("076", 8));
        System.out.println("3c转换成十进制:" + Integer.parseInt("3c", 16));
      }
    }
     
    结果:
    10转换成二进制:1010
    10转换成八进制:12
    10转换成十六进制:a
    110转换成十进制:6
    076转换成十进制:62
    3c转换成十进制:60


     

    3.整形和Integer之间的转换。

     

     

     Integer in=new Integer(“123”);
    Int num=in.intValue();
    Int n=Integer.parseInt(“123”);
     
    6. 装箱和拆箱
       
      public class Text {
      public static void main(String[] args) {
        //JDK1.5新特性
        Integer n=3;//自动装箱,n是一个对象,而3是int类型,此时3会自动转换成Integer类型,这是自动装箱
        n=n+2;//x是对象,2是基本数据类型,因为对象没有加法操作,所以
              //n会自动的转换成in类型,然后和2想加,会把结果x+2自动的转换成Integer(装箱)
       
        Integer x=127;
        Integer x1=127;
        System.out.println(x==x1);//true
        System.out.println(x.equals(x1));//true
        Integer y1=128;
        Integer y2=128;
        System.out.println(y1==y2);//false
        System.out.println(y1.equals(y2));//true
       
        /*在1.5新特性中,只要是在byte类型的范围 -128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等
         * 超过这个范围,那么他们的地址就不相等了*/
      }
    }
    结果:
    true
    true
    false
    true
     

     

     

    在1.5新特性中,只要是在byte类型的范围 -128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等,超过这个范围,那么他们的地址就不相等了


    --------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------


  • 相关阅读:
    【产品】八问
    【设计总结】QQ主题升级
    新冠疫情下的世界是怎么样的?他给我们带来了一份答案
    vue项目实战:vuex板块的考虑和封装
    vue项目实战:directives filters mixins util 内容的封装
    vue项目实战:api管理和封装
    vue项目实战:路由文件的配置
    vue项目实战:项目入口代码展示公共js文件夹内容
    vue项目实战:项目布局和公共文件夹的确定
    vue项目实战:项目搭建使用vue+Es6+webpack+vuex+axios+Element ui完成 文件夹内容的确定
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3327512.html
Copyright © 2011-2022 走看看