黑马程序员__String以及StringBuffer

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

 

   String类型是一个特殊类型:
(1)String类型定义在javalang包中
(2)不能有子类。
(3)创建String类型有两种方式:1.用new关键字。2.用""。
(4)一旦初始化就不会改变,是一个常量。
(5)new String("abc")这句话创建了两个String字符串对象,一个在栈中一个在堆中
(6)string复写了equals方法,比较内容是否相同,不管是不是同一个对象。
(7)常见的操作有以下几个:
   1.获取
      int length() 获取长度
     
      根据位置获取某个字符
      char charAt(int index)(访问到字符串中不存在的角标时,发生stringindexoutofboundsexception异常)
      
      根据字符获取该字符在字符串中的位置
      int indexof(int ch):返回ch在字符串中第一次出现的位置。 为什么是int 因为是接受的asc码。(没找到返回-1)
      int indexof(int ch,int fromIndex):从fromIndex指定位置开始,获取CH在自父亲中第一次出现的位置,这个位置还是根据字符串来定义的。
      int indexof(String str):返回的是str在字符串中第一次出现的位置。
      int indexof(String str,int fromIndex):从fromIndex指定位置开始,返回的是str在字符串中第一次出现的位置
      int lastIndexOf(int ch)
          返回指定字符在此字符串中最后一次出现处的索引。注意:索引从最后开始找,但返回的还是对应的角标。
      int lastIndexOf(int ch, int fromIndex)
          返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
      int lastIndexOf(String str)
          返回指定子字符串在此字符串中最右边出现处的索引。
      int lastIndexOf(String str, int fromIndex)
          返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
    2.判断
       字符串中是否包含某个子串。boolean contains(CharSequence s)(参数是一个接口,其中实现该接口的不仅仅有string类型数据)
       indexof(String str)也可以用于判断,只是当indexof返回-1时表示不存在。
       (只为判断用cantains ,需要位置用indexof(String str))
       字符串中是否有内容。boolean isEmpty() (当length为0时返回true)
       字符串是否是以指定内容开头。boolean startsWith(String prefix)
       字符串是否是以指定内容结尾。 boolean endsWith(String suffix)
       判断内容是否相同,忽略大小写。boolean equalsIgnoreCase(String anotherString) 
    3.转换
       将字符数组转成字符串。
        构造函数 (初始化时就可以转)
        String(char[])
        String(char[],offset,cout)将字符数组中的一部分转成字符串。
        其他静态方法
        static String copyValueOf(char[] data)
        static String copyValueOf(char[] data, int offset, int count)
        static String valueof(基本数据类型都可以) 基本数据类型转成字符串类型
        3+“”等价于String.valueof(3)
       将字符串转成字符数组。
        char[] toCharArray() 没有参数,对象本身就是被转换对象。
       将字节数组转成字符串。
        String(byte[])
        String(byte[],offset,cout)
       将字符串转成字节数组。
        byte[] getBytes() 可以带参数,参数是指定的编码表。
   
     4.替换
       String replace(oldchar,newchar);如果要替换的不存在还是原来的字符串。
       String replace(CharSequence target, CharSequence replacement) 字符串的替换  如果任意参数为null抛异常
      该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
     5.切割
       String[] split(regex)切割的时候注意切出空字符串。
     6.子串,获取字符串中的一部分。
       String substring(begin)从指定位置开始到结尾,如果角标不存在,发生异常。同上的异常。
       String substring(begin,end)//包含头不包含尾。
     7.转换,去除空格,比较。
       转换:将字符串转成大写或者是小写。
       String toUpperCase();
       String toUpperCase();

       去除空格:将字符串两端的空格去除。
       String trim();
       对两个字符串进行自然顺序的比较。
       int compareTo(string);

StringBuffer
1.首先,StringBuffer是一个字符缓冲区,也是一个容器。
2.长度可以变化。
3.可以操作多个数据类型。
4.最终会通过tostring变成字符串。
容器有以下特点:
1.存储(create)
    StringBuffer append()将指定数据添加到已有数据的结尾处。
    StringBuffer insert(index,数据):可以将数据插入到指定index位置。注意:index不能越界。

2.删除(delete)
public StringBuffer delete(int start,int end)删除缓冲区中的数据,包含start不包含end.
public StringBuffer delete(index):删除指定位置的字符。
sb.delete(0,sb.length())清空缓冲区的动作。
sb.deleteCharAt(index)删除一个。
3.获取(read)
int lastIndexOf(String str, int fromIndex)  反向索引从指定位置开始
int lastIndexOf(String str) 
int length() 获取长度
String substring(int start, int end)
String substring(int start)
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 获取一段字符串并存入数组中,包含头不包含尾。

4.修改(Update)
StringBuffer replace(int start, int end, String str)  包含头不包含尾
void setCharAt(int index, char ch) 注意,不返回值。
5.反转
StringBuffer reverse() 
6.Stringbuilder出现在1.5版本。与stringbuffer不同之处在于,前者不安全,线程不同步。后者安全,线程同步。前者
效率高,速度快,后者需要判断锁。用谁看情况,stringbuilder可以自己加锁实现同步。
升级的三个方面因素:1.简化书写。2.提高安全性。3.提高效率。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值