java字符串使用总结

java字符串使用总结

ID:35294581

大小:17.43 KB

页数:4页

时间:2019-03-23

java字符串使用总结_第1页
java字符串使用总结_第2页
java字符串使用总结_第3页
java字符串使用总结_第4页
资源描述:

《java字符串使用总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、www.027hpedu.comJava字符串使用总结这篇文章的目的是提醒大家对字符串三种类型做个综合的比较,使得在使用字符串三种类的时候有个选择依据,这样可以极大提高程序运行的效率。一、String类String类不是原始基本数据类型,在Java中,字符串是一个对象。String类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例来实现。字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为String对象是不可变的,所以可以共享它们。例如:Stringstr="abc";等效于:chardata[]

2、={'a','b','c'};Stringstr=newString(data);下面给出了一些如何使用字符串的更多例子:System.out.println("abc");Stringcde="cde";System.out.println("abc"+cde);Stringc="abc".substring(2,3);Stringd=cde.substring(1,2);既然是字符串是对象,那么任何String的变量,在没有初始化之前,它的值都为null,其实所有的没有初始化的对象的值都是null;所有的原始类型的变量在没有初始化之前Java编译

3、器都会给出一个默认值。www.whhpit.comwww.027hpedu.comJava语言提供对字符串串联符号("+")和其他对象到字符串的转换的特殊支持。字符串串联是通过StringBuilder(或StringBuffer)类及其append方法实现的。字符串转换是通过toString方法实现的,该方法由Object类定义,并可被Java中所有类继承。有关字符串串联和转换的更多信息,请参阅Gosling、Joy和Steele合著的《TheJavaLanguageSpecification》。除非另行说明,否则将null参数传递给此类中的构造方

4、法或方法都会抛出NullPointerException。String表示一个UTF-16格式的字符串,其中的增补字符由代理项对表示(有关详细信息,请参阅Character类中的Unicode字符表示形式)。索引值是指char代码单元,因此增补字符在String中占用两个位置。String类提供处理Unicode代码点(即字符)和Unicode代码单元(即char值)的方法。String使用的陷阱:String一经初始化后,就不会在改变其内容了。对String字符串的操作实际上对其副本(原始拷贝)的操作,原来的字符串一点都没有改变。比如:string

5、s="a";//创建了一个字符串s=s+"b";//实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。相反,StringBuffer类是对原字符串本身操作的,可以对字符串进行修改而不产生副本拷贝。可以在循环中使用。因此,如果要对字符串做修改处理等操作,最好避免直接用String类型。可以选用StringBuffer类型。二、StringBuffer类www.whhpit.comww

6、w.027hpedu.comStringBuffer类是线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。StringBuffer上的主要操作是append和insert方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符

7、串的字符追加或插入到字符串缓冲区中。append方法始终将这些字符添加到缓冲区的末端;而insert方法则在指定的点添加字符。例如,如果z引用一个当前内容为"start"的字符串缓冲区对象,则此方法调用z.append("le")会使字符串缓冲区包含"startle",而z.insert(4,"le")将更改字符串缓冲区,使之包含"starlet"。通常,如果sb引用StringBuilder的一个实例,则sb.append(x)和sb.insert(sb.length(),x)具有相同的效果。当发生与源序列有关的操作(如源序列中的追加或插入操作)时

8、,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步。每个字符串缓冲区都有一定的容量。只要字符串缓冲区所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。