zoukankan      html  css  js  c++  java
  • Java基础笔记-String类2

    StringBuffer

    特点:

    1. 是字符串缓冲区.
    2. 是一个容器,其长度可变,可以操作添加多个数据类型.
    3. 最后通过toString方法变成字符串.

    被final锁修饰,因此不能被继承.

    存储:

    方法1:append() 添加数据到缓冲区.

    返回类型:StringBuffer

    方法: append(指定数据)  将指定数据添加到已有数据的结尾.

    方法2:insert(index,数据内容)

    返回类型:StringBuffer

    方法: insert(index,数据内容) 将数据内容插入到指定的index位置中去.

    删除:

    方法1: delete(int start,int end) 删除缓冲区的数据.

    返回类型:StringBuffer

    方法: delete(int start,int end) 将数据从start开始到end的位置删除

    包含头不包含尾部,即包含start的位置,不包含end的位置.

    方法2: deletecharAt(index)  删除指定index位置的字符

    替换:

    方法1: replace(位置1,位置2,(String类型的)替换内容)

    返回类型为StringBuffer

    方法: replace(位置1,位置2,(String类型的)替换内容)

    将数据从位置1到位置2(不包含位置2)的数据替换成要要替换的字符串内容.

    方法2: setCharAt(位置,要替换的内容)

    返回类型 void

    方法: setCharAt(int位置,char要替换的内容) 将数据从指定的位置用替换的字符内容.

    反转: reverse() 返回类型StringBuffer.

    有关的代码实例:

     1 class StringBufferDemo
     2 {
     3     public static void main(String args[])
     4     {
     5         //function_add();
     6         //function_del();
     7         StringBuffer sb = new StringBuffer("abcdefg");
     8         char [] ch = new char[6];
     9         sb.getChars(1,4,ch,1);
    10         for(int i = 0; i <=ch.length; i++)
    11         {
    12             printer("ch ["+i+"]="+ch[i]+";");
    13         }
    14     }
    15     public static void function_del()
    16     {
    17         StringBuffer sb = new StringBuffer("abcdefg");
    18         
    19         // sb.delete(0,sb.length()); //清空缓冲区.
    20         
    21         sb.delete(2,5); //删除缓冲区中字符串位置2到5的数据,不包含位置5.
    22         printer(sb.toString());
    23         // sb.delete(1,2);
    24         sb.deleteCharAt(1); //删除一个数据,等价于上面的代码: sb.delete(1,2);
    25         
    26         printer(sb.toString());
    27         
    28     }
    29     public static void function_add()
    30     {
    31         StringBuffer sb = new StringBuffer();
    32         sb.append("abc").append("def").append(true).append(123);
    33         
    34         //StringBuffer sb1 = sb.append(34);
    35         
    36         sb.insert(1,"QQQ"); //将字符串"QQQ"从位置1中插入到缓冲区的数据中.
    37         
    38         // sb.insert(100,"QQQ"); 编译的时候会出现角标越界的异常.
    39         //printer("sb==sb1?:"+(sb==sb1));
    40         
    41         printer(sb.toString());
    42         //printer(sb1.toString());
    43     }
    44         
    45     public static void printer(String str)
    46     {
    47         System.out.println(str);
    48     }
    49 }

    JDK1.5版本以后出现了StringBuilder

    StringBuffer是线程同步.

    StringBuidlder是线程不同步,单线程的时候效率高.快捷.

    以后开发建议使用StringBuilder.

    JDK升级一般三个方面:

    1. 1.  提高效率
    2. 2.  提高安全性
    3. 简化书写

    基础数据类型对象包装类:

    小写是基本数据类型  大写开头是类

    int    Integer

    byte   Byte

    float   Float

    double   Double

    boolean   Boolean

    char       Character

    short    Short

    long    Long

    1.获取整型变量的最大值: Integer.MAX_VALUE

    例如:printer("int max = "+Integer.MAX_VALUE);

    最常见应用为:

    将基本数据类型转成字符串.

        方法1:  基本数据类型+””

        方法2:  基本数据类型类.toString(基本数据类型)

        例如: Integer.toString(34); 将整数34转成字符串类型的”34”.

    将字符串转成基本数据类型

    将一个字符串转成整数:

    (静态调用方式)

    Integer.parseInt(“32”); 将字符串”32”转成整数 32.

    格式为:

    xxx a = Xxx.parseXxx(String);

    例如: int a = Integer.parseInt(“123”);

    非静态方法转换 (对象调用方式)

    Integer a = new Integer(“123”);

    int num = a.intValue();

    进制之间转换:

    十进制转成其他进制:

    Integer.toBinayString(要转的数); //转成二进制

    Integer.toHexString(要转的数);   //转成十六进制

    Integer.toOctalString(要转的数); //转成八进制

    其他进制转成十进制:

    格式:

    xxx a = Xxx.parseXxx(要转换的数,要转的进制)

    例如: int a = Integer.parseInt(“110”,2); 将110用二进制转成十进制数.

    括号中的数和转换的进制需要相互对应.不然的话编译会有异常发生.

     相关的简单代码实例:

     1 class IntegerDemo
     2 {
     3     public static void main(String args[])
     4     {
     5         //获取整型变量的最大值
     6         printer("int max = "+Integer.MAX_VALUE);
     7         
     8         int num = Integer.parseInt("123"); //将字符串"123"转成整数123.
     9         num = num +4; //将整数4和整数123先加
    10         printer("num ="+num);  //输出的结果为127.
    11         
    12         printer(Integer.toBinaryString(-6));//将十进制数转成二进制数
    13         printer(Integer.toHexString(60));        //将十进制数转成十六进制数
    14         printer(Integer.toOctalString(60)); //将十进制数转成八进制数
    15         
    16         int a = Integer.parseInt("110",2); //将二进制数110按2进制转换成十进制数 // 二进制数110对应的十进制数是6.
    17         printer("a="+a); //结果a=6.
    18         
    19     }
    20      
    21     public static void printer(String str)
    22     {
    23         System.out.println(str);
    24     }
    25         
    26 
    27 }
     1 class IntegerDemo1
     2 {
     3     public static void main(String args[])
     4     {
     5         //function();
     6         //Integer a = new Integer(4);
     7         Integer a = 4; //自动装箱
     8         a=a+2; //a+2中的a相当于做了a.intValue()操作,a自动拆箱变成了int类型.然后和2进行运算,在将和进行自动的装箱操作赋值给a.
     9         printer("a="+a);
    10         
    11         
    12         Integer x = 128;
    13         Integer y = 128;
    14         printer("x==y:?"+(x==y)); //结果是false.
    15         
    16         Integer m = 127;
    17         Integer n = 127;
    18         printer("m==n:?"+(m==n)); //结果为true. m 和n指向的是同一个Integer对象
    19                                                             //因为当数值在byte范围之内的时候,对于JDK1.5以后的新版本,如果该数值已经存在,不会在开辟新的空间.
    20         
    21     }
    22     public static void function()
    23     {
    24         Integer x = new Integer("123");
    25         Integer y = new Integer(123);
    26         printer("x==y:?"+(x==y));
    27         printer("x.equals(y):?"+x.equals(y));
    28     }
    29     public static void printer(String str)
    30     {
    31         System.out.println(str);
    32     }
    33     
    34     
    35 }
  • 相关阅读:
    ZOJ3329One Person Game(循环型 数学期望)
    ZOJ3551Bloodsucker (数学期望)
    HDU3853LOOPS (师傅逃亡系列•三)(基础概率DP)
    HDU4035 Maze(师傅逃亡系列•二)(循环型 经典的数学期望)
    阿里云DataV专业版发布,为可视化创造更多可能!
    Logtail提升采集性能
    达摩院首席数据库科学家李飞飞:云原生新战场,我们如何把握先机?
    什么是最佳的视频用户体验?阿里云视频服务四大体验优化实践
    Lambda plus: 云上大数据解决方案
    基于大数据的舆情分析系统架构
  • 原文地址:https://www.cnblogs.com/jerryho/p/4534332.html
Copyright © 2011-2022 走看看