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. SqlServer中Sql语句的逻辑执行顺序

    准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...

  2. 【每日scrum】NO.1

    今天我们小组正式开始了冲刺,问题还是不少的,有必要记录下来来指导和改进后续的工作: 1.负责去找地图,却发现地图不能很好的适应我们的软件,略心塞>>> 2.本来计划把迪杰斯特拉算法看 ...

  3. canvas实现跟随鼠标旋转的箭头

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

  4. Careercup - Google面试题 - 5377673471721472

    2014-05-08 22:42 题目链接 原题: How would you split a search query across multiple machines? 题目:如何把一个搜索que ...

  5. 使用Java 8 API,根据传递的分隔符,连接list中所有的元素

    public class MethodReferenceDemo1 { @FunctionalInterface interface StringListFormatter { String form ...

  6. 【BZOJ】【1036】树的统计

    嗯这题是一道对树进行动态修改&查询的经典题目,可以拿来练习树链剖分~ 啊对于这种动态修改&查询的题目,我们最喜闻乐见的就是在一个序列上去做了,毕竟可以直接套各种数据结构模版啊,比如线段 ...

  7. 在linux中使用phpize安装php扩展模块

    介绍:linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块.使用phpize脚本安装php扩展模块的好处:在安装php时没有 ...

  8. 负MARGIN之讲解

    css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...

  9. UML 2.0(装载)

    在世界上统一建模语言UML2.0是完全不同的维度.它在本质上更加复杂和广泛. 与UML1.5版本相比,文件的程度也增加了. UML2.0中还增加了新的功能,所以它的使用可以更广泛. UML2.0将正式 ...

  10. 如何实现Windows Phone代码与Unity相互通信(插件方式)

    原地址:http://www.cnblogs.com/petto/p/3915943.html 一些废话 原文地址: http://imwper.com/unity/petto/%E5%A6%82%E ...