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

来源:互联网 发布:微商达人软件 编辑:程序博客网 时间:2024/04/28 19:49

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 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 支付宝租的手机坏了怎么办 新买的衣服布料扎人怎么办 洗衣服的时候卫生纸沾裤子上怎么办 洗衣服给白衣服染上色了怎么办 不小心喝了游泳池的水怎么办 铁水中硅的含量高了怎么办 视频拍摄单人变双人是怎么办的 四季青进来的货比淘宝还贵怎么办 淘宝还没收货价格买贵了怎么办 在微信上赌博庄跑了怎么办 微信赌博输了10000多怎么办 欠了信用卡说来来家里调查怎么办 没用过的超市购物卡丢了怎么办 体验服抢号成功手机号填错了怎么办 起亚kx3一键启动钥匙没电怎么办 逆战下载的时候显示文件损坏怎么办 移动公司买手机送话费套路怎么办 开通京东白条身份信息被占用怎么办 丰巢快递柜把东西寄丢了怎么办? 圆通快递把我寄的东西弄丢了怎么办 快递把我寄出去的东西弄丢了怎么办 京东被盗刷都是到付怎么办 订机票时护照号错了怎么办 请问网上不小心点了扣话费了怎么办 不小心被中国移动扣了话费怎么办 京东买东西已经付款了说无货怎么办 不小心提交了两次中信信用卡怎么办 淘宝买东西扣了银行卡两次钱怎么办 拼多多同一个订单支付了两次怎么办 京东手机号服务密码忘记了怎么办 京东买的东西转手给别人保修怎么办 改了无线网密码还是上不去网怎么办 买的京东e卡丢了怎么办 已认证未抵扣的发票发生退货怎么办 办的消费卡不给退怎么办 银行卡密码忘了手机号也换了怎么办 公务卡在当当购物的刷卡单怎么办 杭州市网签提示住宅均价异常怎么办 吃鸡账号没有绑定手机就买了怎么办 微信绑定的银行卡密码错误怎么办 淘宝单张券已领取达上限怎么办