黑马程序员——String类的使用

来源:互联网 发布:壁虎数据恢复免root版 编辑:程序博客网 时间:2024/06/05 16:14
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

  1. String

    字符串是一个特殊的对象,一旦初始化就不可以被改变。

    字符串对象一旦被初始化就不会被改变。      

    例如:String s=”abc”;

            String s1=”abc”;

    两个对象都指向同一个地址。所以我们可以把右边的字符串比喻成常量池,当池中已有这个常量时,新的引用不会再次创建字符串。常量池中的变量可以共享。

     

    字符串常量池的特点:

    池中没有就建立,池中有,直接使用。

     

    String str=”abc”String str1=new String(“abc”);的区别

           str是在字符串常量池中获取的对象,str1是在堆中new出来的对象,所以地址不同。

     

           String类中的equals方法复写了Objectequals方法,建立了String类中自己的判断字符串内容是否相等的依据。其实就是比较字符串内容。

     

  2. String类的方法

    1,获取字符串长度个数。

     int length();

    2,根据位置获取字符。

    char charAt(intindex);

    3,根据字符获取在字符串中第一次出现的位置。

    int  indexOf(int ch );

    int  indexOf(int ch ,int fromIndex);从指定位置获取在字符串中第一次出现的位置。

    4,获取字符串中的一部分字符串。别名子串。

    Stringsubstring(int beginIndex, int  endIndex):包含begin,不包含end

    5,转换

    String[]split(String regex);

    6String replace(char oldChar,charnewChar);返回一个新的字符串替换所有oldChar得到的。

    7,将字符串两端的空格去除。

    String trim();

    8,将字符串进行连接。

    Stringconcat(String );

  3. StringBuffer

    字符串缓冲区类。是一个容器。线程安全的可变字符序列。

    字符串(String)的组成原理是通过StringBuffer类实现的。

     

    特点:

    长度是可变化的。

    可以直接操作多个数据类型。

    最终会通过toString方法变成字符串。

     

    String区别?

    答:String一旦被赋值,值将不能发生改变,而StringBuffer值还可以改变。因StringBuffer采用的是缓冲机制。一开始,首先开辟一些空间,然后,随着数据的增多,还可以继续开辟空间。这些操作的是同一个对象。

    String浪费内存,在操作过程中产生大量的临时对象。

    StringBuffer返回的还是StringBuffer类型。

     

增删改查方法

CURDàcreate update read  delete

1)存储

 

StringBuffer append(int i);//将指定数据作为参数添加到已有数据结尾处。

//此处的参数是基本数据类型,但不支持byteshort数据类型。

StringBuffer insert( index ,数据);//可以将数据插入指定index位置。

2)删除

 

StringBuffer Delete(start,end); //删除缓冲区的数据,含头不含尾

StringBuffer Delete(index);//删除指定位置的字符

eg:清空缓冲区(所有数据)

StringBuffersb = newStringBuffer("abcde");

StringBuffer sb = newStringBuffer("abcde");

sb.delete(0,sb.length());

3)获取

 

char charAt(int index);

int indexOf(String str);

int length();

String substring(int start ,int end );

4)替换和截取

StringBuffer replace();//替换。把开始到结束位置的字符用一个新的字符串给替换。

Stringsubstring();//截取。注意,返回值是String类型,操作的不是同一对象。

 

5)反转

StringBuffer reverse();将字符缓冲区中的字符反转。

四、StringBuilder

一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,简易优先采用StringBuilder类,因为此类比StringBuffer效率高。(StringBuilderJDK1.5版本之后出现的)

StringBuilderStringBuffer的功能是一样的,但是有区别:

StringBuffer(JDK1.0)是线程安全的。一般用于多线程。

StringBuilder(JDK1.5)不保证线程安全。一般用于单线程。

一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。以后开发建议使用StringBuilder

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
0 0
原创粉丝点击