java中字符串操作string、stringBuffer和stringBuilder的区别以及其相关操作技术

来源:互联网 发布:知识库软件 编辑:程序博客网 时间:2024/05/21 15:04

简单来说:

1、基本概念,string字符串常量,长度不可变;stringBuffer字符串变量,长度可变(线程安全);stringBuilder字符串变量,长度可变(非线程安全);

2、执行效率,就单个字符串对象效率比较来说string>stringBuilder>stringBuffer;

举个简单的例子,string=“abc”+“def”+“ghi”;JVM在创建string对象时会认为string=“abcdefghi”;执行效率相当快

相比之下stringBuffer来说stringBuffer    strBuff=new stringBuffer();strBuff.append("abc").append("def")+append("ghi");速度上来说是比不上string的。

但是如果需要创建多个string来说,stringBuffer是可变长度,效率比较为stringBuilder>stringBuffer>string。

举个例子:string    num1=“abc”;

                    string    num2=“def”;

                    string   num3=“ghi”;来说JVM要创建三个string对象,当三个对象使用完之后JVM还的对这三个对象自动回收(AutoClose),所以采用可变长度stringBuffer要效率高。

3、基本操作方法:stringBuffer,stringBuilder的操作一样,下面只对stringBuffer操作和string操作作讲解。

   1、三者之间的转换问题: stringBuffer转换string对象,string str=new string(stringBuffer strBuff);

     string转换为stringBuffer对象 stringBuffer strBuff=new stringBuffer(string str);

   2、我们最常见的Tostring方法,其实他是基本数据类型valueof()字符转换方法中的子方法。

        charAt()单个字符转换方法,char   charAt(int  index);例如 char ch;ch=“abc”.charAt(2);即把c赋值给ch变量。

        getChars()多个字符提取方法:一般形式为  void getChars(int sourseState,int sourseEnd,Char target [ ],int targetStart);

         getBates()字符到字节转换方法:一般形式  byte[ ] getBytes();

        toCharArray()字符转换为字符数组方法;一般形式 char [] toCharArray(0;

4.字符串比较,主要方法为equals()内容比较方法,它与“==”是有区别的,后者在于对象的是否相等。

                           equalsIgnoreCase()不区分大小写比较相等。

                           regionMatches()比较一段字符与另一段字符中的一段是否相等

 bollean regionMaches(int startindex,string str2,int str2StartIndex,int numChars);

 bollean regionMaches(bollean ignoreCase,int startindex,string str2,int str2StartIndex,int numChars);ignoresCase为true表示则忽略大小写,否则大小写有意义。

其他方法读者自己领悟



0 0
原创粉丝点击