学习2____String,StringBuilder,StringBuffer

一:String:

String类不可变的原因:底层是由private final char [ ]修饰的字符数组,这也决定了String类不可被继承(final修饰); 

    1.构造方法:由于在内存中存放的方式不同(常量池,堆),String可以使用常量进行赋值。

//两种方式的构造方法:
String str="123";   //引用类型,但可以向常量一样赋值,因为在内存中存放的方式不一样
String str  =new String ("123");

   2.常用方法:

  1. charAt(index);    //获得相应索引下标的字符
  2. length();    //返回该字符数组的大小,  数组用 length属性    String用length()方法,  集合类用size()方法;
  3. contains(str);    //返回boolean,是否包含相应子串;
  4. getBytes();     //返回字节数组;
  5. toCharArray();   //转换成字符数组;
  6. indexOf(char);   //找寻指定元素在string中第一次出现的位置;
  7. lastIndexOf(char);   //找寻所给元素最后一次出现的位置;
  8. repalce(char,char);   //替换指定的字符;
  9. split(string);   //按照string进行字符串的分割,结果是一个str数组;
  10. subString(int):   截串:从int下标来时到最后    subString(int,int ) 截串 [ )的区间;
  11. toUperCase():字母全部转大写;
  12. toLowerCase(): 字母全部转小写;
  13. trim();   //去除字符串的前后的空格;
  14. matches(String regex);   //是否匹配某一个字符串;

二,StringBuffer,StringBuilder:

底层也是字符数组,相比于String的字符数组 修饰符不同,所以限制不同。

1.构造方法:

StringBuilder sb=new StringBuilder();  
//无参的构造,默认大小为16

StringBuilder  sb= new StringBuilder("abc");

StringBuilder sb =new StringBuilder(string);
//以String对象作为StringBuilder的构造方法的参数

2.常用方法:

  1. append(object);   //拼串;
  2. capacity();  //返回底层字符数组的长度;
  3. length();   //返回有效元素的个数;
  4. charAt(int);   //按索引返回index位置的char;
  5. subString(int,int);   //返回一个String [ )
  6. deleteCharAt(int)l   //按索引删除一个字符,返回一个StringBuilder;
  7. setCharAt(int,char);  //将giant索引的字符修改;
  8. reverse();   //将串翻转 返回的还是一个StringBuilder;
  9. toString();   //将StringBuilder变换成一个String返回;
  10. trimToSize();   //压缩串

3.由于StringBuilder没有实现Compareable接口,没有compareTo()方法,不能进行元素的比较;

StringBuffer是JDK比较早期的版本,是线程安全的,但是执行效率低下。

猜你喜欢

转载自www.cnblogs.com/xbfchder/p/11403188.html