博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
StringBuilder
阅读量:4593 次
发布时间:2019-06-09

本文共 3203 字,大约阅读时间需要 10 分钟。

用较短的字符串构建字符串,采用字符串连接的方式达到此目的效率比较低,每次连接字符串,都会构建一个新的String对象,即耗时,又浪费空间。

在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer来解决定个问题。

 

 StringBuilder使用方法

1、构造函数。

StringBuffer() :构造一个空字符的StringBuffer类。

StringBuffer(int length) :构造一个空字符的StringBuffer类,长度为length
StringBuffer(String str) :以str为初始值构造一个StringBuffer类。
2、方法。

 StringBuffer append(boolean b) 

StringBuffer append(char c) 
StringBuffer append(char[] str) 
StringBuffer append(char[] str, int offset, int len) 
StringBuffer append(double d) 
StringBuffer append(float f) 
StringBuffer append(int i) 
StringBuffer append(long l) 
StringBuffer append(Object obj) 
StringBuffer append(String str) 
StringBuffer append(StringBuffer sb) 
以上的方法都是向字符串缓冲区“追加”元素,但是,这个“元素”参数可以是布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串、字符串和StringBuffer类等。如果添加的字符超出了字符串缓冲区的长度,Java将自动进行扩充。

  int capacity() :返回当前StringBuffer对象(字符串缓冲区)的总空间,而非字符号串的长度。

 char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0
StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。
 StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。
void ensureCapacity(int minimumCapacity) :重新设置字符号串缓冲区的总空间。如果minimumCapacity大于当前的总空间,则新的空间被设置:一种结果是minimumCapacity;另一种结果是{
“老空间”乘22}

 

     StringBuffer sb1 = new StringBuffer(5);

     StringBuffer sb2 = new StringBuffer(5);
    
        sb1.ensureCapacity(6);
        sb2.ensureCapacity(100);
       
        System.out.println( "sb1.Capacity: " + sb1.capacity() );
        System.out.println( "sb2.Capacity: " + sb2.capacity() );
结果为:
sb1.Capacity: 12
sb2.Capacity: 100

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前StringBuffer对象的索引号srcBegin开始,到srcEnd结束的子串,赋值到字符数组dst中,并且从dst的索引号dstBegin开始。

        StringBuffer sb = new StringBuffer("I love her!");

 char[] i ={‘I‘,‘ ‘,‘l‘,‘o‘,‘v‘,‘e‘,‘ ‘,‘y‘,‘o‘,‘u‘};
      
        sb.getChars(7,10,i,7);
     
        System.out.println( "sb: " + sb );
结果为:sb: I love her!

int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。

int indexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回第一个满足str子串的位置。
StringBuffer insert(int offset, boolean b) 
StringBuffer insert(int offset, char c) 
StringBuffer insert(int offset, char[] str) 
StringBuffer insert(int index, char[] str, int offset, int len) 
StringBuffer insert(int offset, double d) 
StringBuffer insert(int offset, float f) 
StringBuffer insert(int offset, int i) 

StringBuffer insert(int offset, long l) 

StringBuffer insert(int offset, Object obj) 
StringBuffer insert(int offset, String str) 
以上的方法都是在当前StringBuffer对象中插入一个元素,在索引号offset处插入相应的值。
 int lastIndexOf(String str) :返回当前StringBuffer对象中,最后一个满足str子串的位置。
 int lastIndexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回最后一个满足str子串的位置。
int length() :返回当前StringBuffer对象(字符缓冲区)中,字符串的长度。注意:此方法与capacity() 不同。

 StringBuffer replace(int start, int end, String str) :替换当前StringBuffer对象的字符串。从start开始,到end结束的位置替换成str

StringBuffer reverse() :将字符串反转。

 void setCharAt(int index, char ch) :设置索引号index的字符为ch

 void setLength(int newLength) :重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。

 String substring(int start) :取当前StringBuffer对象中,从start开始到结尾的子串。

 String substring(int start, int end) :取当前StringBuffer对象中,从start开始到end的子串。
 String toString() :将当前StringBuffer对象转换成String对象。

转载于:https://www.cnblogs.com/love-javabean/p/3649451.html

你可能感兴趣的文章
Android系统刷机成功后网络信号显示“无服务”修正
查看>>
深圳Uber优步司机奖励政策(12月28日到1月3日)
查看>>
文本框样式大全
查看>>
shell按行合并文件
查看>>
leetcode总结
查看>>
[BZOJ 1095] [ZJOI 2007]Hide 捉迷藏
查看>>
分层测试_基本思想
查看>>
HihoCoder - 1139
查看>>
Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext
查看>>
初次使用Mybatis配置出现错误待解决
查看>>
linux中使用vi 打开文件时,能显示行号
查看>>
java性能调优实战
查看>>
larabel Artisan Command 使用总结
查看>>
mysql中查看一个字段中,有几个逗号
查看>>
C#中的常识
查看>>
安装SQL Server 2012 『企业中文版』
查看>>
win10 上安装虚拟机
查看>>
Mysql 数据迁移后 启动出错
查看>>
HDU 2473 Junk-Mail Filter 删点并查集
查看>>
HDU - 5491 The Next 2015 ACM/ICPC Asia Regional Hefei Online
查看>>