Java String StringBuffer StringBuilder
(二)StringBuffer
java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法和String相同,但是StringBuffer是可变长度的
StringBuffer是一个容器
public class StringBuffer01 {public static void main(String[] args) {//老韩解读//1. StringBuffer 的直接父类 是 AbstractStringBuilder//2. StringBuffer 实现了 Serializable, 即StringBuffer的对象可以串行化//3. 在父类中 AbstractStringBuilder 有属性 char[] value,不是final// 该 value 数组存放 字符串内容,因此存放在堆中的//4. StringBuffer 是一个 final类,不能被继承//5. 因为StringBuffer 字符内容是存在 char[] value, 所以在变化(增加/删除)// 不用每次都更换地址(即不是每次创建新对象), 所以效率高于 StringStringBuffer stringBuffer = new StringBuffer("hello");}
}
String VS. Stringbuffer
(1)String 保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,效率较低//private final char[] value;
(2)StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率较高//char[] value;放在堆
String和StringBuffer相互转换
开发中,常常需要将String和StringBuffer进行转换
Stringbuffer的构造器:
String和StringBuffer的转换:
public class StringAndStringBuffer {public static void main(String[] args) {//看 String——>StringBufferString str = "hello tom";//方式1 使用构造器//注意: 返回的才是StringBuffer对象,对str 本身没有影响StringBuffer stringBuffer = new StringBuffer(str);//方式2 使用的是append方法StringBuffer stringBuffer1 = new StringBuffer();stringBuffer1 = stringBuffer1.append(str);//看看 StringBuffer ->StringStringBuffer stringBuffer3 = new StringBuffer("韩顺平教育");//方式1 使用StringBuffer提供的 toString方法String s = stringBuffer3.toString();//方式2: 使用构造器来搞定String s1 = new String(stringBuffer3);}
}
StringBuffer常用方法:
例题1:
例题2:
public class StringBufferExercise02 {public static void main(String[] args) {/*输入商品名称和商品价格,要求打印效果示例, 使用前面学习的方法完成:商品名 商品价格手机 123,564.59 //比如 价格 3,456,789.88要求:价格的小数点前面每三位用逗号隔开, 在输出。思路分析1. 定义一个Scanner 对象,接收用户输入的 价格(String)2. 希望使用到 StringBuffer的 insert ,需要将 String 转成 StringBuffer3. 然后使用相关方法进行字符串的处理代码实现*///new Scanner(System.in)String price = "8123564.59";StringBuffer sb = new StringBuffer(price);//先完成一个最简单的实现123,564.59//找到小数点的索引,然后在该位置的前3位,插入,即可
// int i = sb.lastIndexOf(".");
// sb = sb.insert(i - 3, ",");//上面的两步需要做一个循环处理,才是正确的for (int i = sb.lastIndexOf(".") - 3; i > 0; i -= 3) {sb = sb.insert(i, ",");}System.out.println(sb);//8,123,564.59}
}
Java String StringBuffer StringBuilder相关推荐
- `java`学习笔记(十二)`Java`--`String``StringBuffer``StringBuilder`
Java–String&&StringBuffer&&StringBuilder 文章目录 `Java`--`String`&&`StringBuffe ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- Java中的String,StringBuffer,StringBuilder有什么区别?
相信有很多同学都是经常使用String的,或者也或多或少的听说过StringBuffer,StringBuilder,那么在经常遇见的面试题中(标题),到底这三个的区别是什么呢?让我们来一探究竟! S ...
- String, StringBuffer,StringBuilder
String, StringBuffer,StringBuilder的区别 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,都实现了CharSe ...
- 2019-7-9 [JavaSE] String ,StringBuffer,StringBuilder比较 装箱和拆箱 日期类 正则
文章目录 1.StringBuffer类 方法: 利用StringBuffer开头与结束的时间计算: String ,StringBuffer,StringBuilder比较 2.装箱和拆箱 3.日期 ...
- String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...
最新文章
- sosdp 二进制子集的贡献
- 23种设计模式C++源码与UML实现--命令模式
- myeclipse启动错误:org.eclipse.swt.SWTError: No more handles
- Java面向对象编程学习
- windows平台下vlc编译
- OpenCV辅助对象(help objects)(5)_DataType
- android遍历图片,Android获取手机所有图片并显示
- 【hadoop各个节点的意思】
- Pandas 基础(4) - 读/写 Excel 和 CSV 文件
- Cisco实例1—构建高可用性DM×××网络2—方案设计
- 计算机论文格式要求吗,论文格式
- 学地质灾害还是学计算机专业,地质灾害与防治技术专科专业介绍
- 大数据安全与隐私保护的问题及对策
- IDEA怎么查看现在的项目使用的JDK版本? 2016年4月19日22:51
- 什么是集成测试?集成测试方法有哪些?
- 真知灼见|客户视图与工作台:金融行业呼叫中心领域驱动设计
- 在Vue单文件组件的template标签上使用v-if不生效的原因
- 在Windows端安装kafka 提示错误: 找不到或无法加载主类 的解决方案
- 从“我爱你”到“我爱钱”
- 我的2018年竞赛之路总结