Java中String、StringBuilder和StringBuffer

来源:互联网 发布:互联网软件与服务 编辑:程序博客网 时间:2024/06/09 21:32

三者都是处理字符串的方案,不过StringBuilder和StringBuffer可以添加、插入和追加新的内容,而String对象一旦创建,它的值也就确定了。

StringBuffer和StringBuilder相比,除了StringBuffer中修改缓冲区的方法是同步的之外其他基本相似,在程序中一般都可以用StringBuffer代替StringBuilder。

StringBuffer适用于多任务并发访问,StringBuilder适用于单任务访问。下面分别对两者进行介绍:

(1)StringBuilder方法示例代码(StringBuffer的方法也是如此)

import java.util.*;


public class testStringBuilder {
public static void main(String[]args)
{
test();
}

public static void test()
{
StringBuilder s1=new StringBuilder("Welcome to the world!");//构建带指定字符串的字符串生成器
StringBuilder t1;//构建一个容量为16 的空的字符串生成器
StringBuilder t2=new StringBuilder(10);//构建一个容量为10的字符串生成器
t2.append("123456789abcdefgh");//追加字符串,其实还可以追加其他数据类型(boolean、char、char数组、double、float、int、String)的值
System.out.println(t2);
t2.delete(1, 8);//删除从下标1到8-1=7处的字符
System.out.println(t2);
t2.deleteCharAt(0);//删除指定下标0处的字符
System.out.println(t2);
t2.insert(4, "mnopq");//将字符串mnopq插入这个生成器的位置偏移量4处,原来字符串内容只增不减
System.out.println(t2);
t2.replace(1, 4, "1234");//将原来字符串中从下标1到4-1=3处的字符替换为字符串1234
System.out.println(t2);
System.out.println(t2.reverse());//颠倒生成器中的字符
t2.setCharAt(0, '0');//在生成器的特定下标0处设置一个新字符替换该下标处原来的字符
System.out.println(t2);

t1=t2.reverse();//!!注意:此时t1和t2指向同一个StringBuff对象,也就是说t2更改时t1的内容也相应改变
System.out.println(t1);
t2.append("haha");
System.out.println(t1);//t1的内容已经改变
System.out.println(t2.capacity());
System.out.println(t1.length());
t1.setLength(10);//改变字符个数,容量不变
System.out.println(t2.capacity());
System.out.println(t1);
System.out.println(t1.substring(1));//返回从下标1开始的子串

t1.trimToSize();//减少字符串生成器使用的存储大小,使得容量和字符个数相等,即capacity()==length(),节省内存空间
System.out.println(t1);
System.out.println(t1.capacity());
System.out.println(t1.length());
}
}

程序运行结果如下:

123456789abcdefgh
19abcdefgh
9abcdefgh
9abcmnopqdefgh
91234mnopqdefgh
hgfedqponm43219
0gfedqponm43219
91234mnopqdefg0
91234mnopqdefg0haha
22
19
22
91234mnopq
1234mnopq
91234mnopq
10
10


toString():从生成器中返回一个字符串对象

capacity():返回此时生成器中的容量,注意:不是字符个数

length():返回生成器中的字符个数

charAt(index:int):返回指定下标处的字符

setLength(length:int):设置这个生成器的字符个数,会改变length()和字符串长度

substring(startIndex:int):返回从下标stratIndex开始的子串

substring(stratIndex:int,endIndex:int):返回从stratIndex到endIndex-1处的子串

trimToSize()://减少字符串生成器所使用的存储大小


0 0
原创粉丝点击