StringBuffer特点:
1、是字符缓冲区,一个容器(不论缓冲区内容怎么变化,StringBuffer这个容器对象都不会改变)
2、是可变长度的
3、可以直接操作多个数据类型
4、最终会通过toString()方法变成字符串
 
@存储:StringBuffer append():将指定的数据作为参数添加到已有的数据结尾处。
      StringBuffer insert(index,数据):可以将数据插入到指定的index位置处。
 
@删除:StringBuffer delete(Start,end):删除缓冲区的数据,包含头start,不包含尾end
      StringBuffer deleteCharAt(int index):删除指定位置的字符
 
@获取: char charAt(int index) 
       int indexOf(String str)
       int indexOf(String str, int fromIndex) 
  int lastIndexOf(String str) 
       int lastIndexOf(String str, int fromIndex)  
  int length()  
  String substring(int start)  
  String substring(int start, int end) 
  String toString() 
 
@修改:StringBuffer replace(int start, int end, String str) :将指定位置的字符串用其他的字符串替换掉
      void setCharAt(int index, char ch):替换一个字符 
 
@反转: StringBuffer reverse():将容器中的字符串进行反转
 
@将缓冲区的指定数据存放到指定数组的指定位置中: void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
 
 
JDk1.5版本之后出现了StringBuilder.
 
相同点:方法功能全部一样
不同点:StringBuffer 是线程同步的,具有锁(适用于多线程)
        StringBuilder 是线程不同步的,没有锁(适用于单线程)
 
注意:以后开发建议使用StringBuilder,因为它提高了效率
 
JAVA升级始终围绕着三点:1、提高效率 2、简化书写 3、提高安全性 
 
应用具体举例如下:
class StringBufferTest
{
//打印数据
public static void sop(String str)
{
System.out.println(str);
} public static void main(String[] args)
{
storage_method();//存储数据
delete_method();//删除数据
update_method();//修改数据
reverse_method();//反转数据
getchars_method();//取得数据存放数组中
} //存储数据
public static void storage_method()
{
StringBuffer sb = new StringBuffer();
sop(sb.toString());//返回StringBuffer对象中的结果是null
sb.append("abc").append(true).append();//方法调用链,连续添加数据
sop(sb.toString());//返回StringBuffer对象中的结果是“abctrue34”
sb.insert(,"qq");//插入数据
sop(sb.toString());//返回StringBuffer对象中的结果是"qqabctrue34"
} //删除数据
public static void delete_method()
{
StringBuffer sb = new StringBuffer("abcdefg");//直接对StringBuffer对象进行初始化
sop(sb.toString());//返回StringBuffer对象中的结果是"abcdefg"
sb.delete(,);//删除从0到2的数据,不包含2位置处的数据
sop(sb.toString());//返回StringBuffer对象中的结果是"cdefg"
sb.deleteCharAt();//删除指定的4位置处的字符====>>sb.delete(2,3);
sop(sb.toString());//返回StringBuffer对象中的结果是"cdfg"
sb.delete(,sb.length());//清空缓冲区
sop(sb.toString());//返回StringBuffer对象中的结果是null
} //修改数据
public static void update_method()
{
StringBuffer sb = new StringBuffer("abcdefg");//直接对StringBuffer对象进行初始化
sop(sb.toString());//返回StringBuffer对象中的结果是"abcdefg"
sb.replace(,,"java");//用java替换掉从1到4(不包含4)的字符串。
sop(sb.toString());//返回StringBuffer对象中的结果是"ajavaefg"
sb.setCharAt(,'k');//用字符‘k’替换0角标处的字符
sop(sb.toString());//返回StringBuffer对象中的结果是"kjavaefg"
} //反转数据
public static void reverse_method()
{
StringBuffer sb = new StringBuffer("abcdefg");//直接对StringBuffer对象进行初始化
sop(sb.toString());//返回StringBuffer对象中的结果是"abcdefg"
sb.reverse();
sop(sb.toString());//返回StringBuffer对象中的结果是"gfedcba"
} //获取数据存放数组中
public static void getchars_method()
{
StringBuffer sb = new StringBuffer("abcdefg");//直接对StringBuffer对象进行初始化
char[] chs = new char[];//创建一个数组对象
sop(sb.toString());//返回StringBuffer对象中的结果是"abcdefg"
sb.getChars(,,chs,);//将StringBuffer中的从1到4(不包含4)的位置中的数据存放到数组chs中,并从角标1处开始存放
for(int i=;i<chs.length;i++)
{
sop("chs["+i+"]="+chs[i]+";");
}
}
}

Java:字符串缓冲区StringBuffer和StringBuilder的使用的更多相关文章

  1. 【java基础】java字符串之StringBuffer和StringBuilder

    [一]简述区别 package com.sxf.test.string; public class StringBufferStringBuilderTest { public static void ...

  2. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  3. Java中String,StringBuffer与StringBuilder的差别

    String 字符串常量: StringBuffer 字符串变量〈缓冲区〉(线程安全): StringBuilder 字符串变量〈缓冲区〉(非线程安全): 简要的说, String 类型和 Strin ...

  4. Java String,StringBuffer和StringBuilder的区别

    [可变与不可变] String是字符串常量,不可变. StringBuffer和StringBuilder是字符串变量,可变. [执行速度方面] StringBuilder > StringBu ...

  5. 【Java】String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  6. java String,StringBuffer,StringBuilder区别及联系

    String 字符串常量(不可变)StringBuffer 字符串变量(线程安全,可变) StringBuilder 字符串变量(非线程安全,性能优,可变) 简要的说, String 类型和 Stri ...

  7. java中String,StringBuffer与StringBuilder的区别??

    本文着重介绍下,应该在何时恰当的使用string,stringbuffer,stringbuilder. 1,执行速度 StringBuilder >  StringBuffer  >  ...

  8. [Java]String、 StringBuffer、StringBuilder的区别

    一.异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer.StringBuilder 长度是可变的; 3) StringBuffer ...

  9. java ->String、StringBuffer、StringBuilder三者之间的区别

    1.首先说运行速度,速度由快到慢排列:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuil ...

随机推荐

  1. 用telnet和php的curl库测试http

    一.telnet测试http telnet简介     Telnet协议是TCP/IP协议族的其中之一,是Internet远端登录服务的标准协议和主要方式,常用于网页服务器的远端控制,可供使用者在本地 ...

  2. 优惠书价计算---c++--软件工程

    一.题目 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示:                              ...

  3. mui开发webapp(2)

    前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...

  4. 《我是IT一只小小鸟》读后感

    <我是IT一只小小鸟>读后感 首先,非常感谢我的老师给我推荐了这么一本书,虽然刚开始因为这门课学分太低,所以我对老师布置了字数这么多的作业存在有很大的不满,但在看了这本书后我的不满立马得到 ...

  5. UIlabel 显示模糊

    问题: 今天遇到连续两个label一个显示的比较清楚,比较锐利,而另一个对比下有点模糊. 原因: 在使用UILabel等继承于UIView的控件时,如果frame的rect不是整数的情况下,就会显示起 ...

  6. 【BZOJ】【1011】【HNOI2008】遥远的行星

    神奇的思路题QAQ 玛雅看到这题我就醉了,什么玩意……5%的误差?果断膜拜@ydc神犇的题解: 就是因为不清楚如何应用那个答案误差不超过5%啦. 从没见过这么诡异的题一下就懵了,问到了方法之后都还半信 ...

  7. WPF编程学习——样式

    本文目录 1.引言 2.怎样使用样式? 3.内联样式 4.已命名样式 5.元素类型样式 6.编程控制样式 7.触发器 1.引言 样式(Style),主要是用来让元素或内容呈现一定外观的属性.WPF中的 ...

  8. ios 图片转视频

    转自:http://blog.iosxcode4.com/archives/160 用到的FrameWork有: MediaPlayer.framework,QuartzCore.framework, ...

  9. c3p0 --2

    c3p0号称是java界最好的数据池. c3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p ...

  10. eclipse运行WordCount

    1) 可以完全参考http://www.cnblogs.com/archimedes/p/4539751.html在eclipse下创建MapReduce工程,创建了MR工程,并完成WordCount ...