StringBuffer是字符串缓冲区,是一个容器。

特点:

1,长度是可变化的。
2,能够字节操作多个数据类型。

3,终于会通过toString方法变成字符串。

C create U update R read D delete

1,存储。
StringBuffer append():将指定数据作为參数加入到已有数据结尾处。
StringBuffer insert(index,数据):能够将数据插入到指定index位置。

2,删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包括start,不包括end。
StringBuffer deleteCharAt(index):删除指定位置的字符。

3,获取。
char charAt(int index) 
int indexOf(String str) 
int lastIndexOf(String str) 
int length() 
String substring(int start, int end) 
 
4,改动。
StringBuffer replace(start,end,string);
void setCharAt(int index, char ch) ;

5,反转。
StringBuffer reverse();
 
6,
将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
演示样例:
StringBuffer buffer=new StringBuffer("abcdef");
char[]chs=new char[5];
buffer.getChars(1, 4, chs, 0);
for(int i=0;i<chs.length;i++){
System.out.println("chs["+i+"]"+"="+chs[i]+";");
}
输出:chs[0]=b;
 chs[1]=c;
 chs[2]=d;
 chs[3]= ;
 chs[4]= ;
JDK1.5 版本号之后出现了StringBuilder.

StringBuffer是线程同步。
StringBuilder是线程不同步。

以后开发,建议使用StringBuilder

升级三个因素:

1,提高效率。
2,简化书写。

3,提高安全性。

class StringBufferDemo
{public static void main(String[] args) {//method_update();StringBuilder sb = new StringBuilder("abcdef");char[] chs = new char[6];sb.getChars(1,4,chs,1);//将for(int x=0; x<chs.length; x++){sop("chs["+x+"]="+chs[x]+";");}draw(3,6);draw(8,9);//     StringBuilder sb1 = new StringBuilder();
//      sb1.append(new Demo()).append(new Demo());
//      sop("sb1="+sb1);}public static void method_update(){StringBuffer sb  = new StringBuffer("abcde");//      sb.replace(1,4,"java");sb.setCharAt(2,'k');sop(sb.toString());}public static void method_del(){StringBuffer sb  = new StringBuffer("abcde");//       sb.delete(1,3);//清空缓冲区。//sb.delete(0,sb.length());//sb.delete(2,3);sb.deleteCharAt(2);sop(sb.toString());}public static void method_add(){StringBuffer sb = new StringBuffer();//sb.append("abc").append(true).append(34);
//      StringBuffer sb1 = sb.append(34);
//      sop("sb==sb1:"+(sb==sb1));sb.insert(1,"qq");sop(sb.toString());//abctrue34//sop(sb1.toString());}public static void sop(String str){System.out.println(str);}public static void draw(int row,int col){StringBuilder sb = new StringBuilder();for(int x=0; x<row; x++){for(int y=0; y<col; y++){sb.append("*");}sb.append("\r\n");}sop(sb.toString());}}

转载于:https://www.cnblogs.com/blfshiye/p/4036820.html

StringBuffer和StringBuilder使用方法比較相关推荐

  1. JavaSE09:String、StringBuffer、StringBuilder底层源码解析(纯干货)

    写在前面 结束了多线程的学习后,常用类的学习立马就安排上了.在学习的过程中,发现源码是很重要的,只知道怎么用却不知道底层是很不好的,而我又太懒.看源码也是零零散散,所以本篇博客旨在鞭策自己多多阅读现阶 ...

  2. Java学习20天 String 类 常用方法 String、StringBuffer、StringBuilder三者的异同

    String 类 String:字符串,使用一对""引起来表示. 1.String声明为finaL的,不可被继承 2.String实现了SerializabLe接口:表示字符串是支 ...

  3. JavaSE(二十五)——String与StringBuffer、StringBuilder的区别、创建对象的几种方法、Http和Https的区别

    文章目录 1. String与StringBuffer.StringBuilder的区别 2. Java创建对象的几种方法 3. Http和Https的区别 1. String与StringBuffe ...

  4. dofilter在java中_关于java:Servlet的doFilter方法中的StringBuffer或StringBuilder?

    本问题已经有最佳答案,请猛点这里访问. 我正在实现我的自定义筛选器: public class MyFilter implements javax.servlet.Filter 我应该在这个doFil ...

  5. String、StringBuffer、StringBuilder的理解

    问题: 理解 Java的字符串,String.StringBuffer.StringBuilder 有什么区别? 知识点 字符串设计和实现考量 String是Immutable(线程安全.字符串常量池 ...

  6. String、StringBuffer、StringBuilder源码解析

    2019独角兽企业重金招聘Python工程师标准>>> String:如果短字符拼接的话效率是最高的,例如 String a="a"+"b"+ ...

  7. Java中String、StringBuffer和StringBuilder的区别

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6581009.html  在编程中,对于字符串拼接,我们可以用String类重载的+或concat(str).S ...

  8. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍

    String:字符串常量,字符串长度不可变,StringBuffer:字符串变量(Synchronized,即线程安全),StringBuilder:字符串变量(非线程安全). String Stri ...

  9. String、StringBuffer、StringBuilder三者的异同

    String.StringBuffer.StringBuilder String.StringBuffer.StringBuilder三者的异同 StringBuffer.StringBuilder的 ...

最新文章

  1. 图像像素点赋值_医学图像处理教程(五)——医学图像边缘检测算法
  2. Windows 2003 AD升级至Windows 2012 AD之DHCP服务器迁移
  3. GLSL实现图像处理
  4. easyui 合并列_Easyui 表格列数据合并!
  5. hadoop的运行机制
  6. mysql的中文乱码url,MySQL 中文显示乱码
  7. 从病毒到“基础软件污染”,Linux 真的安全吗?
  8. 【转】xp修复win7启动项方法
  9. getSelectionStart() doesn't work in android, is always 0
  10. SpringBoot添加FastJson消息转换器(自用)
  11. 基于EasyX的推箱子游戏
  12. 微信小程序 + 腾讯位置服务获取全国城市列表
  13. AUTOSAR——AUTOSAR基础
  14. 用C语言实现推箱子小游戏基础程序
  15. tableau瀑布图
  16. eclipse中servers(服务器)的配置
  17. 轻型货车鼓式制动器设计(论文+CAD图纸+Catia三维图+开题报告+任务书+翻译……)
  18. ChatGPT专业应用:撰写节日营销活动方案
  19. 计算机网络协议,以太网帧格式
  20. pandas爬取表格数据

热门文章

  1. 8种你可能正在写错的SQL用法
  2. 45张令程序员泪流满面的趣图
  3. ip访问php $_files空,PHP中表单没有问题但$_FILES为空怎么办?
  4. 台式计算机单核与双核,什么是单核cpu、双核cpu 单核cpu和双核cpu的区别是什么...
  5. figma下载_通过构建7个通用UI动画来掌握Figma中的动画
  6. react-navigation 跨 tabs 返回首页
  7. Add a All Document Folder
  8. java中文乱码解决之道(五)—–java是如何编码解码的
  9. maven正确的集成命令-U-B
  10. SQL相关路径查询脚本