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培训、期待与您交流! --------------------


  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3327512.html
Copyright © 2011-2022 走看看