[转载] StringBuffer和StringBuilder类
参考链接: Java中的String vs StringBuilder vs StringBuffer
下述文章资料来源于: W3CSCHOOL离线版的Java教程 Java JDK 6.0开发手册 Java开发从入门到精通(陈小玉版)
StringBuffer和String选择的异同 StringBuffer在进行字符串处理时,不生成新的对象,在内存的使用上要优于String类; 二者有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别
Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。
和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。
由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。
在Java中规定,一旦声明String的内容就不可再改变,如果要改变,改变的肯定是String的引用地址。 如果一个字符串需要经常被改变,则必须使用 StringBuffer类。 在String类中可以通过“+”来连接字符串,在StringBuffer中只能使用方法append()来连接字符串。
public class Test{
public static void main(String args[]){
StringBuffer sBuffer = new StringBuffer(" test");
sBuffer.append(" String Buffer");
System.out.println(sBuffer);
}
}
以上实例编译运行结果如下:
test String Buffer
StringBuffer 方法 以下是StringBuffer类支持的主要方法:
序号方法描述1public StringBuffer append(String s) 将指定的字符串追加到此字符序列。2public StringBuffer reverse() 将此字符序列用其反转形式取代。3public delete(int start, int end)4public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。5replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。
下面的列表里的方法和String类的方法类似: 使用append()来连接字符串
public class StringBufferT1{
public static void main(String args[]){
StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象
buf.append("Hello ") ; // 向StringBuffer中添加内容
buf.append("World").append("!!!") ; // 可以连续调用append()方法
buf.append("\n") ; // 添加一个转义字符
buf.append("数字 = ").append(1).append("\n") ; // 添加数字
buf.append("字符 = ").append('C').append("\n"); // 添加字符
buf.append("布尔 = ").append(true) ; // 添加布尔值
System.out.println(buf) ; // 直接输出对象,调用toString()
}
};
在任意处为StringBuffer添加内容
public class StringBufferT3{
public static void main(String args[]){
StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象
buf.append("World!!") ; // 添加内容
buf.insert(0,"Hello ") ; // 在第一个内容之前添加内容
System.out.println(buf) ;
buf.insert(buf.length(),"MM~") ; // 在最后添加内容
System.out.println(buf) ;
}
};
在任意处为StringBuffer添加内容
public class StringBufferT5{
public static void main(String args[]){
StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象
buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容
buf.replace(6,11,"AAA") ; // 将world的内容替换
System.out.println("内容替换之后的结果:" + buf) ; // 输出内容
}
};
从StringBuffer中删除指定范围的字符串
public class StringBufferT7{
public static void main(String args[]){
StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象
buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容
buf.replace(6,11,"AAA") ; // 将world的内容替换
String str = buf.delete(6,15).toString() ; // 删除指定范围中的内容
System.out.println("删除之后的结果:" + str) ; // 输出内容
}
};
[转载] StringBuffer和StringBuilder类相关推荐
- String、StringBuffer、StringBuilder类
String.StringBuffer.StringBuilder类:java提供了string.stringbuffer两个类来封装字符串,并提供了一系列方法来操作字符串对象. String类是不可 ...
- Java 12 - Java StringBuffer和StringBuilder类
Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...
- JAVA数组Java StringBuffer 和 StringBuilder 类
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_34173549/article/details/80215173 Java StringBuf ...
- java stringbuilder换行_初遇Java StringBuffer 和 StringBuilder 类利用 StringBuilder 给TextView实现换行处理...
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...
- 20191001:String,StringBuffer,StringBuilder类异同辨析
String,StringBuffer,StringBuilder类异同辨析 框架 String对象的建立方法及底层 StringBuffer与String的区别 StringBuilder与Stri ...
- 深入理解String、StringBuffer和StringBuilder类的区别
Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...
- Java String、StringBuffer、StringBuilder类解析
String.StringBuffer.StringBuilder类解析 概述 String类:代表字符串. 特点 String实现了Serializable接口,表示String是可序列化的 实现了 ...
- 【Java】字符串的理解与运用以及StringBuffer 和 StringBuilder 类
常见字符串求解: 1.长度 用于获取有关对象的信息的方法称为访问器方法. String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数. 2.字符串索引位置的字符 3.提取 ...
- Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...
最新文章
- 08-dispatch_apply
- 兵棋推演有助于我们了解哪些战争知识?
- JSONAssert Spring Boot Test
- jstl 处理Date 时间
- 小大整数对象池及intern机制
- centos7调节虚拟机字体_初次安装虚拟机中Ubuntu16.04系统设置的一些小问题(小白教程)...
- python-Django环境搭建
- 黑客大曝光:VoIP安全机密与解决方案
- 软工大二下半年第十四周学习进度
- python可迭代对象相关的内建函数_python之函数闭包、可迭代对象和迭代器
- c语言用程序判断是否素数,用C语言编写判断一个数是否是素数的程序
- php 通过ip获取省份,通过IP获取用户地理位置省份城市的接口使用
- jinjia2 本地渲染文本文件核心代码(可以渲染html,xml,txt等等)
- matlab mysql建系统_能环水体治理项目(Mysql数据库,Matlab创建GUI界面)【一】
- Windows操作系统名称与版本号汇总
- 3199. 命令行选项
- UKF-MATLAB实现
- android 发广播屏蔽home键,如何在Android App中屏蔽(拦截)Home按键及其他按键
- 位运算 之(1) 按位与(AND) 操作【转载】
- 实现HTTP2.0方式
热门文章
- c语言程序算一元二次方程,如何用C语言来计算一元二次方程
- php 串口通信例程,HAL库串口通信例程
- sqli-lab——Writeup(38~over)堆叠等......
- java xml date_W3C XML 模式时间数据类型与java Date进行转换
- java jdbc rowset_JAVA基础知识之JDBC——RowSet
- python和nltk自然语言处理书评_Python和NLTK自然语言处理
- python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...
- c语言的程序结构语序,第3章 C语序结构.doc
- java 类 属性数量_跟我学java编程—Java类的属性与成员变量
- (转)JVM监控工具介绍