黑马程序员--String和StringBuffer的应用

来源:互联网 发布:怎么样做淘宝客 编辑:程序博客网 时间:2024/04/30 21:31

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

 

1.字符串最大的特点

               一旦被初始化就不可以被改变,
2.String s1="abc"  //S1是一个类类型变量,"abc"是一个对象
  String s2=new String("abc");
 S1和S2区别?
     S1在内存中有一个对象
     S2在内存中有两个对象
3.s1==s2    和s1.equals(s2) 
      String类复写了Object类中equals方法
      该方法用户判断字符串是否相同,比较的是值,而不是内存地址

 

 

1.String类适用于描述字符串事物
那么它就提供了多个方法对字符串进行操作。
常见的操作方法有哪些?
1.获取   
    1.1字符串中得包含的字符数,也就是字符串的长度
            int length();获取长度
    1.2根据位置获取位置上某个字符
            char charAt(int index);
    1.3根据字符获取该字符在字符串中位置

               int indexOf(int ch) 返回的是ch在字符床中第一次出现的位置
               int indexOf(int ch,int formIndex)从formIndex制定位置开始,获取ch在字符串出现的位置

                int indexOf(String str) 返回的是str在字符串中第一次出现的位置
                int indexOf(String str,int formIndex)从formIndex制定位置开始,获取str在字符串出现的位置
       
               int codePointAt(int  index)  给一个位置返回位置上的元素所对应的ACSII码
2.判断
      2.1字符串中是否包含某一字符串。
              boolean containe(str)
     特殊之处:

              indexOf(str):可以索引str第一次出现位置,如果返回-1。表示该str不在字符串种存在所以,也可以用于对指定判断是否包含。
              if(str.indexOf("aa")!=-1)
              而且该方法即可以判断,也可以获取出现的位置
    2.2字符中是否有内容
                boolean isEmpty();原理就是判断长度是否为0.
    2.3字符串是否是以指定内容开头
                boolean startsWith(str);
    2.4字符串是否是以指定内容结尾
                   boolean endsWith(str);
    2.5判断字符串内容是否相同,复写Object类中的equals方法
                  boolean equals(str);
    2.6判断内容是否相同,并忽略大小写

                 boolean equalsIgnoreCase();
3.转换
    3.1将字符数组专程字符串
              构造函数:string(char[])
                      string(char[],offset,count):将字符数组中得一部分转成字符串
               静态方法:
                      static String copyValueOf(char[]);
                       static String copeValueOf(char[] data,int offset ,int count)
                      static string valueOf(char[])
    3.2将字符串转成字符数组
                      char[] toCharArray():
    3.3将字节数组转成字符串
                        string(byte[])
                       string(byte[],offset,count):将字节数组中得一部分转成字符串
    3.4将字符串转成字节数组
                         byte[] getBytes();
    3.5将基本数据类型转成字符串

                         static String valueOf(int)
                          static String valueOf(double)

 特殊:字符串和字节数组在转换过程中,是可以指定编码表的
4.替换
    4.1 将新字符串替换旧字符串
                        String replace(oldchar,newchar)
5.切割
    5.1将字符串进行切割
                   String[] split(regex)
6.子串,获取字符串中得一部分
                    String substring(begin)//从指定位置开始到结尾,如果字符串不存在,会发生脚标越界的错误
                    String substring(begin,end)//包含头,不包含尾

 


1.StringBuffer是字符串缓冲区
是一个容器
特点:
1.长度是可变换的
2.可以字节操作多个数据类型。
3.最终会通过tostring方法编程字符串


什么时候用容器?(StringBuffer)
当数据类型不确定,数据的个数不确定,而且最终变成字符串的,用StringBuffer(缓冲区)是最方便的比数组要方便

C   create   U    update   R  read    Ddelete
1.存储。
 StringBuffer append():将制定数据作为参数添加到已有的数据结尾处
 StringBufer insert(index,数据):可以将数据插入到指定的index位置处
2.删除
 StringBuffer delete(start,end):删除缓冲区的数据,包含start,不包含end  start,end都是元素下表
 StringBuffer deleteCharAt(index):删除指定位置的字符

 清空缓冲区
 sb.delect(0,sb.length())元素长度为length-1但是不包含最后一位,我想删除最后一位就不能-1

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,int end,String str)
 void setCharAt(int index,char ch)  替换某一位字符
5.反转
 StringBuffer reverse()
6.将缓冲区中的指定数据存储到指定数组中
 void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

 

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------