黑马程序员--java String类

来源:互联网 发布:淘宝电子面单打印视频 编辑:程序博客网 时间:2024/06/10 10:31

        ------ android培训  java培训、期待与您交流! ----------

一、String类创建对象


    1.双引号创建对象
        使用双引号创建字符串对象,首先会在缓冲区里查找,如果没有就会创建一个新的对象,如果有就直接引用。
    2.构造函数创建对象

        使用构造函数创建字符串对象,每次都会创建一个新的对象


    
二、字符串相加    

    1.字符串相加的原理
        任何类型的数据和字符串相加都会得到字符串, 基本数据类型字面值直接拼接, 引用数据类型会把toString()返回值和字符串进行拼接
        字符串相加内部是使用StringBuilder类的append()方法来实现的, 相加之后会得到一个新的字符串
    2.注意
        如果以String s = "a" + "bc";这种形式来写, 编译后直接改为String s = "abc";不会进行字符串相加
    
    

三、String类的构造方法
    1.字节数组
        String(byte[])            使用默认码表将字节数组解码为字符
        String(byte[], String)    使用指定码表将字节数组解码为字符
        String(byte[], int, int, String)    使用指定码表将字节数组中一部分字节解码为字符
    2.字符数组
        String(char[])                把字符数组转为字符串
        String(char[], int, int)    把字符数组中的一部分转为字符串
    1.字符串相加的原理
        任何类型的数据和字符串相加都会得到字符串, 基本数据类型字面值直接拼接, 引用数据类型会把toString()返回值和字符串进行拼接
        字符串相加内部是使用StringBuilder类的append()方法来实现的, 相加之后会得到一个新的字符串
    2.注意
        如果以String s = "a" + "bc";这种形式来写, 编译后直接改为String s = "abc";不会进行字符串相加
   

四、String类常用的方法

    compareTo();        //获取比较两个字符串的值
   indexOf()            //获取索引的位置
   substring()            //获取子字符串   注:开始索引的位置包括,结束索引的位置不包括
   charAt()            //获取指定索引的字符
   length()            //获取字符串的长度
   equals()            //判断两个字符串是否相等
   startsWith()         //判断字符串以什么开始
   endsWith()            //判断字符串以什么结尾
   getBytes()            //转化为字节数组    
   toCharArray()        //转化为字符数组
   toLowerCase()        //转化为小写
   toUpperCase()        //转化为大写
   valueOf()            //转化为字符串
   matches()            //正则表达式的匹配
   replace()            //正则表达式的替换
   split()            //正则表达式的分割



五、StringBuilder类的方法
    StringBuilder类的常用方法:
      append(string);                    //添加
     inset(int, String);                //插入
     delete(int, int);                //删除
     repalce(int, int , String);            //替换
      reverse();                    //反转
    

六、String类、StringBuilder类、StringBuffer类的区别
    String类的特点:是常量,不可改变的。
    StringBuilder和StringBuffer类的特点:是可变的子符序列,其对象内容是可以改变的。

    StringBuffer类: 同步的, 线程安全, 但效率略低(jdk1.0开始使用)
    StringBuilder类: 不同步, 效率高. 单线程的程序使用这个类更好. (jdk1.5开始使用)

原创粉丝点击