首页 > 其他 > 详细

String、StringBuffer和StringBuilder

时间:2015-03-22 22:45:51      阅读:439      评论:0      收藏:0      [点我收藏+]

String代表不可变的字符序列是一个终态类不能被继承。字符串是常量声明之后不能改变其值。

      在对String类型的对象进行操作时比如使用+对字符串拼接是会产生新的对象。这就会对字符串的操作效率大大降低。当需要频繁修改字符串时,不建议用String类。

      对字符串比较时,不建议使用“==”,而是用equals()方法。在String类中,已经对equals()重新。

StringBuffer:是可变的字符序列,是线程安全的,同步的。它在对字符串进行操作时,使用的是append()方法,在字符串的后面追加字符串,但是不产生新的对象。这样对字符串操作的效率较高。在Java中如果对字符串进行大量的操作,建议使用 StringBuffer

StringBuilder:是可变的字符序列,不是线程安全的,不同步。它与StringBuffer类似,但是不是线程安全的,效率很高,用在字符串缓冲区被单个线程使用的时候,建议优先采用该类。将 StringBuilder 的实例用于多线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer

String s1 = newString(”hello”);

String s2 = newString(”hello”);

String s3 = “hel”;

String s4 = “lo”;

String s5 = s3+s4;

String s6 = “hel”;

System.out.println(s1 == s2);//false,指向的不是同一个对象。

System.out.println(s3 == s6);//true

System.out.println(s1 == s5);//false s5产生的是一个新的对象。

String 类中常用的方法

intcompareTo(String value): 指定者:接口 Comparable 按字典顺序比较两个字符串。如果两个字符串相等,则返回 0;如果字符串在参数值之前,则返回值小于 0;如果字符串在参数值之后,则返回值大于 0

public int length(),字符串的长度

public char charAt(int index),返回一个在字符串中索引是indexchar类型的字符。此方法可以将一个字符串转换成char类型的数组。同时,也可以使用new String(char[] ch)char类型的数组,在String声明时转换成一个字符串。

boolean startsWith(Stringvalue)   检查一个字符串是否以参数字符串开始。

booleanendsWith(String value)检查一个字符串是否以参数个字符串结束。

public int indexOf(int ch)返回指定字符ch在此字符串中第一次出现处的索引值;如果未出现该字符,则返回 -1

public int indexOf(int ch, int fromIndex) fromIndex - 开始搜索的索引

public int lastIndexOf(intch)   返回最后一次出现的指定字符在此字符串中的索引值;如果未出现该字符,则返回 -1

public int lastIndexOf(Stringstr)   返回最后一次出现的指定子字符串str在此字符串中的索引值;如果未出现该字符串,则返回 -1

public String substring(intindex)提取从位置索引index开始直到此字符串末尾的这部分子字符串

public String substring(intbeginIndex, int endIndex)提取从 beginindex开始直到 endindex(不包括此位置)之间的这部分字符串

public String concat(Stringstr)  将指定字符str串联接到此字符串的结尾成为一个新字符串返回。

public String replace(charoldChar, char newChar)      返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。

public String trim() 返回字符串的副本,忽略前导空白和尾部空白

public String toUpperCase();   将此字符串中的所有字符都转换为大写

public String toLowerCase();   将此字符串中的所有字符都转换为小写

public int length()获得此字符串的长度

StringBuffer:常用的方法

StringBuffer append(Stringstr):将指定的字符串追加到此字符序列

StringBuffer insert(intoffset, String str)   将字符串str插入此字符序列指定位置中。

int length( ):确定 StringBuffer 对象的长度

void setCharAt(int pos, charch)    使用 ch 指定的新值设置 pos指定的位置上的字符

String toString( )转换为字符串形式

StringBuffer reverse()    反转字符串

StringBuffer delete(intstart, int end)   此方法将删除调用对象中从start 位置开始直到 end 指定的索引 1 位置的字符序列

StringBuffer deleteCharAt(intpos)     此方法将删除 pos 指定的索引处的字符

StringBuffer replace(intstart, int end, String s):此方法使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到end 指定的位置结束

StringBuilder的用法和StringBuffer的用法是一致的。了解更详细的请看官方文档,或者在线查看http://tool.oschina.net/apidocs/apidoc?api=jdk-zh Java API 文档


String、StringBuffer和StringBuilder

原文:http://zzhhz.blog.51cto.com/7107920/1622972

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!