字符串类型 String StringBuffer 区别与联系

字符串操作详解
本文详细介绍了String和StringBuffer类的各种方法,包括字符串长度获取、子字符串提取、替换、追加及插入等功能,并解释了它们在多线程环境下的使用区别。

应用API文档查看这二个类中的方法的使用方法:

String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版

String 
length()

 int length()
          返回此字符串的长度。

substring()
 String substring(int beginIndex)
          返回一个新的字符串,它是此字符串的一个子字符串。 
 String substring(int beginIndex, int endIndex)
          返回一个新字符串,它是此字符串的一个子字符串。

replace

String replace(char oldChar, char newChar)
          返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 
 String replace(CharSequence target, CharSequence replacement)
          使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。



public final class StringBufferextends Objectimplements Serializable, CharSequence

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

StringBuffer 上的主要操作是 appendinsert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容为 "start" 的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含 "startle",而 z.insert(4, "le") 将更改字符串缓冲区,使之包含 "starlet"。

通常,如果 sb 引用 StringBuilder 的一个实例,则 sb.append(x)sb.insert(sb.length(), x) 具有相同的效果。

当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步。

每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。 


StringBuffer


length()
int length()
          返回长度(字符数)。

subString()
 String substring(int start)
          返回一个新的 String,它包含此字符序列当前所包含的字符子序列。 
 String substring(int start, int end)
          返回一个新的 String,它包含此序列当前所包含的字符子序列。

replace()
StringBuffer replace(int start, int end, String str)
          使用给定 String 中的字符替换此序列的子字符串中的字符。

append()
StringBuffer append(boolean b)
          将 boolean 参数的字符串表示形式追加到序列。 
 StringBuffer append(char c)
          将 char 参数的字符串表示形式追加到此序列。  
StringBuffer append(char[] str)
          将 char 数组参数的字符串表示形式追加到此序列。
StringBuffer append(char[] str, int offset, int len)
          将 char 数组参数的子数组的字符串表示形式追加到此序列。 
 StringBuffer append(CharSequence s)
          将指定的 CharSequence 追加到该序列。 
 StringBuffer append(CharSequence s, int start, int end)
          将指定 CharSequence 的子序列追加到此序列。
 StringBuffer append(double d)
          将 double 参数的字符串表示形式追加到此序列。 
 StringBuffer append(float f)
          将 float 参数的字符串表示形式追加到此序列。 
 StringBuffer append(int i)
          将 int 参数的字符串表示形式追加到此序列。  
StringBuffer append(long lng)
          将 long 参数的字符串表示形式追加到此序列。  
StringBuffer append(Object obj)
          追加 Object 参数的字符串表示形式。 
 StringBuffer append(String str)
          将指定的字符串追加到此字符序列。 
 StringBuffer append(StringBuffer sb)
          将指定的 StringBuffer 追加到此序列中。

insert()
 StringBuffer insert(int offset, boolean b)
          将 boolean 参数的字符串表示形式插入此序列中。 
 StringBuffer insert(int offset, char c)
          将 char 参数的字符串表示形式插入此序列中。  
StringBuffer insert(int offset, char[] str)
          将 char 数组参数的字符串表示形式插入此序列中。  
StringBuffer insert(int index, char[] str, int offset, int len)
          将数组参数 str 的子数组的字符串表示形式插入此序列中。 
 StringBuffer insert(int dstOffset, CharSequence s)
          将指定 CharSequence 插入此序列中。 
 StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
          将指定 CharSequence 的子序列插入此序列中。 
 StringBuffer insert(int offset, double d)
          将 double 参数的字符串表示形式插入此序列中。
 StringBuffer insert(int offset, float f)
          将 float 参数的字符串表示形式插入此序列中。  
StringBuffer insert(int offset, int i)
          将 int 参数的字符串表示形式插入此序列中。 
 StringBuffer insert(int offset, long l)
          将 long 参数的字符串表示形式插入此序列中。  
StringBuffer insert(int offset, Object obj)
          将 Object 参数的字符串表示形式插入此字符序列中。 
 StringBuffer insert(int offset, String str)
          将字符串插入此字符序列中。


delete()
 StringBuffer delete(int start, int end)
          移除此序列的子字符串中的字符。

reverse()
StringBuffer reverse()
          将此字符序列用其反转形式取代。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值