黑马程序员——03 String,StringBuffer,StringBuilder的联系以及三者的常用方法

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


一、三者之间的异同:

String:为了提高对字符串进行操作的效率,创建了StringBuffer、StringBuilder,字符串操作效率低的原因就在于每次更改一次字符串都要的创建一个新的字符串对象


StringBuffer:线程安全的可变字符序列。一个类似于 String 的字符串缓冲区。


StringBuilder:不保证同步,在大多数实现中,它比 StringBuffer 要快,但不安全。

该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类。

二、三者之间的相互转换

       String 转换成 StringBuffer与StringBuilder,一般采用后面两者的构造方法。

       StringBuffer与StringBuilder转换成String都采用toString()方法。

三、StringBuffer与StringBuilder最常用的方法就是append()与Insert(),前者可以添加各种数据类型和数组,后者将各种数据类型和数组插入到制定位置。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.   
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.         String s = "abcdefg";  
  2.        StringBuffer sbf = new StringBuffer(s);//将字符串转换为StringBuffer  
  3.        StringBuilder sbd = new StringBuilder(s););//将字符串转换为StringBuilder  
  4.           //StringBuffer、StringBuilder最常用的方法就是appendsbf.append("A");  
  5.         sbd.append("B");  
  6.           
  7.         sbf.insert(3"C");  
  8.         sbd.insert(0"D");  
  9.           
  10.         sbf.reverse();//将内容翻转  
  11.         sbd.reverse();  
  12.           
  13.         System.out.println(sbf);//AgfedCcba  
  14.         System.out.println(sbd);//BgfedcbaD  
  15.           
  16.         String  s1 = sbf.toString();//转换为字符串  
  17.         String  s2 = sbd.toString();  
  18.         System.out.println(s1.getClass());//class java.lang.String 说明转换成了String类型  
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. // StringBuilder与StringBuffer具有相同的API,所以他们的方法大部分都一样  
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.         //将StringBuilder的内容添加到指定数组的指定位置  
  2.           char[] ch = new char[sbd.length()];  
  3.           sbd.getChars(0, sbd.length(), ch, 0);//要注意的是前两个参数是要复制的字符串的范围,是个                         //左闭右开的区间  
  4.           for (char c : ch)  
  5.           {  
  6.              System.out.print(c);  
  7.           }  

四、String的常用方法:

       4.1 String与基本数据类型和数组之间的转换

            4.1.1 整形,浮点型,字符型,boolean型转换成String类型,利用String的静态方法: valueOf(数据类型 d)。

            4.1.2 String转换字符数组和字节数组:
                                                                    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
                                                                    将字符从此字符串复制到目标字符数组。
                                                                    byte[] getBytes()
                                                                    使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到

                                                                    一个新的Byte数组中。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. int i= 56;  
  2. String.valueOf(i);  
  3. String.valueOf(ch);  
  4.   
  5. String string = "12345";  
  6. byte[] b = string.getBytes();//字符串转为字节数组  
  7. char[] ch2 ;  
  8. string.getChars(0, string.length(), ch, 0);//字符串转为字符数组  

         4.2 String的其他常用方法:


boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束 boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束 boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束 boolean contains(CharSequence s) 
          当且仅当此字符串包含指定的 char 值序列时,返回 true。 
 boolean endsWith(String suffix) 
          测试此字符串是否以指定的后缀结束

 boolean equalsIgnoreCase(String anotherString) 
          将此 String 与另一个 String 比较,不考虑大小写。

 String[] split(String regex) 
          根据给定正则表达式的匹配拆分此字符串。 
 String[] split(String regex, int limit) 
          根据匹配给定的正则表达式来拆分此字符串。int compareTo(String anotherString) 
          按字典顺序比较两个字符串。 
 boolean endsWith(String suffix)      //此方法常用语TreeSet中复写copareTo方法
          测试此字符串是否以指定的后缀结束


 


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值