Java:字符串缓冲区StringBuffer和StringBuilder的使用

简介:
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(34);//方法调用链,连续添加数据 sop(sb.toString());//返回StringBuffer对象中的结果是“abctrue34” sb.insert(0,"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);//删除从0到2的数据,不包含2位置处的数据 sop(sb.toString());//返回StringBuffer对象中的结果是"cdefg" sb.deleteCharAt(2);//删除指定的4位置处的字符====>>sb.delete(2,3); sop(sb.toString());//返回StringBuffer对象中的结果是"cdfg" sb.delete(0,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(1,4,"java");//用java替换掉从1到4(不包含4)的字符串。 sop(sb.toString());//返回StringBuffer对象中的结果是"ajavaefg" sb.setCharAt(0,'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[5];//创建一个数组对象 sop(sb.toString());//返回StringBuffer对象中的结果是"abcdefg" sb.getChars(1,4,chs,1);//将StringBuffer中的从1到4(不包含4)的位置中的数据存放到数组chs中,并从角标1处开始存放 for(int i=0;i<chs.length;i++) { sop("chs["+i+"]="+chs[i]+";"); } } }
复制代码

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4914444.html ,如需转载请自行联系原作者
相关文章
|
5天前
|
Java 索引
String字符串常用函数以及示例 JAVA基础
String字符串常用函数以及示例 JAVA基础
|
6天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
27 1
|
4天前
|
存储 安全 Java
Java中的这些String特性可能需要了解下
Java中的String特性你知道哪些?虽然String很常见,通过源码可以看到String的值传递、字符串表和不可变性。本文基于JDK17说明。
10 1
|
6天前
|
Java
Java获取字符串最后一位
【5月更文挑战第9天】Java获取字符串最后一位
38 5
|
4天前
|
存储 Java
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
|
5天前
|
Java
Java中两个字符串进行大小比较
Java中两个字符串进行大小比较
19 5
|
6天前
|
Java
Java String 避免空指针的方法
Java String 避免空指针的方法
5 0
|
Java
Java---StringBuffer()方法的简单应用
Java---StringBuffer()方法的简单应用
116 0
|
Java
Java---StringBuffer()方法的简单应用
描述:在实际应用中,经常回遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。 1、构造函数。
695 0
|
1天前
|
安全 Java 程序员
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第20天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析synchronized关键字、ReentrantLock类以及java.util.concurrent包中的高级工具类,如Semaphore、CountDownLatch和CyclicBarrier等。通过实例演示如何使用这些工具来提高多线程程序的性能和可靠性。