黑马程序员.Android攻城狮.JAVA基础.1.6.String类

String类

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

1、String类

        类位于java.lang.String包中,适合描述与字符串有关是事物,字符串有以下两种定义方式:
        (1) String s1 = "abc";      (2) String s2 = new String("abc");
        以上两种定义方式的区别:s1代表一个对象,s2有两个对象
        字符串最大的特性:一旦被初始化值,其值就不会在发生改变。
        注意:String类中覆写了Object类中的equals方法,不再是比较地址值,而是比较具体的内容。

2、字符串的常用操作

        常用的操作有:
        (1) 获取
                获取字符串中字符的个数,也就是字符串的长度
                int  length();
                根据位置获取某个字符
                char  charAt(int  index);
                根据字符获取该字符在字符串中第一次出现的位置
                int  indexOf(int  ch);其中的ch接收ASCII码
                从指定位置获取字符在字符串中出现的位置
                int  indexOf(int  ch, int  fromIndex);
                返回的是str子串在字符串中第一次出现的位置
                int  indexOf(String  str);
                从指定位置获取子串str在字符串中出现的位置
                int  indexOf(String  str, int  fromIndex);
                反向索引一个字符出现的位置
                int  lastIndexOf(int  ch);
        (2) 判断
                字符串中是否包含某一个子串。
                boolean  contains(String  str);
                字符串中是否有内容。
                boolean  isEmpty();
                字符串是否以指定内容开头。
                boolean  startsWith(Sting  str);
                字符串是否以指定内容结尾。
                boolean  endsWith(String  str);
                判断字符串内容是否相同,覆写了Object类中的equals方法
                boolean  equals(String  str);
                判断内容是否相同,并忽略大小写
                boolean  equalsIgnoreCase();
        (3) 转换
                将字符数组转成字符串
                构造函数:String(char[]  ch);
                                    String(char[]  ch, int  offset, int  count);将字符数组的一部分转成字符串
                静态方法:static  String  copyValueOf(char[]  ch);
                                    static  String  copyValueOf(char[]  ch, int  offset, int  count);
                                    static  String  valueOf(char[] ch);
                将字符串转成字符数组
                char[]  toCharArray();
                将字节数组转成字符串
                构造函数:String(char[]  ch);
                                    String(char[]  ch, int  offset, int  count);
                将字符串转成字节数组
                byte[]  getBytes();
                将基本数据类型转成字符串。
                static  String  valueOf(int  i);
                static  String  valueOf(double  d);等等
                特殊:字符串和字节数组在转换过程中是可以指定编码表的
        (4) 替换
                String  replace(char  oldChar, char  newChar)
                String  replace(string  oldStr, String  newStr)
                注意:如果要替换的内容不存在,那么返回的还是原来的字符串
        (5) 切割
                String[]  split(regex);
        (6) 子串,获取字符串中的一部分
                String  substring(int  beginIndex);从指定位置开始切割,一直到结尾
                String  substring(int  beginIndex, int  endIndex);从指定位置开始切割,到结束位置,包含头,不包含尾
                注意:1、substring(int  beginIndex, int  endIndex);相当于substring(int  beginIndex, str.length());
                            2、如果传入的索引值大于字符串长度,将引发字符串角标越界异常
        (7) 转换,去除空格,比较
                将字符串转成大写或小写。
                String  toUpperCase()
                String  toLowerCase()
                将字符串两端的多个空格去除。
                String  trim();只能去除字符串的两端空格,无法去除字符串内的空格
                对两个字符串进行自然顺序的比较。
                int  compareTo(String  str)
                如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;
                如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。

3、StringBuffer类

        StringBuffer是字符串缓冲区,可看做是一个容器,并且其长度是可变的,StringBuffer可以操作多种数据类型,最终会通过toString()方法变成字符串。
        常用的操作有:
        (1) 存储
                StringBuffer  append(数据);将指定数据作为参数添加到已有数据结尾处。
                StringBuffer  insert(int  index, 数据);可以将任意类型数据插入到指定index位置。
         注意: StringBuffer  s1  =  new  String  StringBuffer();
                     StringBuffer  s2  =  s1.append(34);
                    以上代码中的s1与s2是同一个对象。
        (2) 删除
                StringBuffer  delete(int  start, int  end);删除缓冲区中的数据,包含start但不包含end
                StringBuffer  deleteCharAt(int  index);删除指定位置的字符
         清空StringBuffer:s.delete(0, s.length());
        (3) 获取
                char  charAt(int  index);根据索引获取缓冲区中的字符
                int  indexOf(String  str);根据字符串获取其在缓冲区的索引
                int  lastIndexOf(String  str);根据字符串获取其中缓冲区的反向索引
                int  length();获取字符串缓冲区的长度
                String  substring(int  start, int  end);根据索引获取指定的子字符串,包含头,不包含尾
        (4) 修改
                StringBuffer  replace(int  start, intend, String  str);根据索引将缓冲区的内容替换成str
                void  setCharAt(int  index, char  ch);根据索引将缓冲区中的某个字符换成指定字符
        (5)反转
                StringBuffer  reverse();将字符串缓冲区进行反转

4、StringBuilder类

        JDK1.5版本之后出现了StringBuilder类,与StringBuffer相比,StringBuilder是线程不同步的,将该类的实例用于多个线程是不安全的,如果需要这样的同步,则建议使用StringBuffer。
        StringBuilder的出现是为了提高效率,在不需要保证线程同步安全性的情况下,,尽量使用StringBuilder。

5、基本数据类型包装类

        下表为8种基本数据类型及相应的包装类  
             

        基本数据类型包装类的最常用功能是:
        (1) 基本数据类型转为字符串类型
                基本数据类型+“”;
                基本数据类型.toString(基本数据类型值);
        (2)  字符串类型 转为 基本数据类型转为
                  xxx  a = Xxx.parseXxx(String);
                 int  a  =  Integer.parseInt("34");
                double  d  =  Double.parseDouble("12.34"); 
                boolean  b  =  Boolean.parseBoolean("true");
        (3) 进制转换
                toBinaryString();十进制转成二进制
                toHexString();十进制转成十六进制
                toOctalString();十进制转成八进制
                parseInt(String, radix);其它进制转十进制

         在JDK1.5之后出现了包装类的新特性,即:
                自动装箱操作:
                将Integer  x  =  new  Integer(4);简化为:Integer  x  =  4;
                自动拆箱操作:
                 x  =  x  +  2;其中x为Integer类型,自动将其变为int类型与2进行运算,再将运算结果自动装箱为Integer类型

     

---------- Windows Phone 7开发.Net培训、期待与您交流! ----------


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值