StringBuilder的简单用法 与String、StringBuffer的粗略了解

弱鸡作者:文章的内容不是很难,请仔细阅读,文末也有重要的知识点


这三个类之间的区别主要在两个方面,即运行速度和线程安全这两个方面:

  1. 运行速度快慢方面:StringBuilder > StringBuffer > String
  2. 在线程安全上,StringBuilder 是线程不安全的,而 StringBuffer 是线程安全的

在运行速度方面,因为 String 为字符串常量,而 StringBuilder 和 StringBuffer 为字符串变量, 即 String 对象一旦创建之后是不可改变的。每一次 string 都是在堆内存中开辟新的空间。

对于这些堆栈模型比较难以理解的,可以暂时简单的理解,StringBuilder 和 StringBuffer 的对象是变量,对变量进行操作就是直接对该对象进行更改。而不是创建新的对象。


String 中文文档

StringBuilder 中文文档

StringBuffer 中文文档


由于在算法题目中,比较经常用到这三个中的 StringBuilder 。这里讲解一下 StringBuilder 的简单用法

  1. 创建 StringBuilder 对象
StringBuilder strA = new StringBuilder(); //创建字符串对象,strA字符串内容为空
StringBuilder strB = new StringBuilder("0"); //可以理解为初始化,strB字符串内容为 0
  1. append:字符串拼接
strB.append("1");
System.out.println(strB);

控制台输出结果为:

01

  1. toString:这个字符串序列的字符串表示
System.out.println(strB.toString());

控制台输出结果为:

01

返回表示此顺序中的数据的字符串。 新的String对象被分配并初始化以包含此对象当前表示的字符序列。 然后返回String此序列的后续更改不影响String的内容

  1. length:返回长度(字符数)
StringBuilder strB = new StringBuilder("0");
strB.append("1222");
System.out.println(strB);
System.out.println("======");
if (strB.length()>2) {
	System.out.println("ERROR");
}

控制台的输出结果为:

01222

=====

ERROR

  1. setLength 设置字符序列的长度
StringBuilder strB = new StringBuilder("0");
strB.append("1222");
System.out.println(strB);
System.out.println("======");
strB.setLength(3);
System.out.println(strB);

控制台的输出结果为:

01222

=====

012


以上就是 StringBuilder 的简单用法,关于更多用法,可以去查看文档。

欢乐


  1. StringBuilder 的长度问题
StringBuilder strB = new StringBuilder("0");
strB.append("1222");
strB.setLength(10);
System.out.print(strB);
System.out.print("end");

控制台的输出结果为:

01222      end

这时候可以简单的看出来,当 strB 的字符长度小于 setLength 的长度时,会用空格来填充,以满足长度的设置,如果 strB 的长度大于 setLength 的长度时,则会从截取所设置的长度


文章结尾来填坑了,关于线程的问题:
《5个步骤,教你瞬间明白线程和线程安全的问题》 传送门
关于 StringBuilder 的长度问题,可以阅读大佬的文章 传送门
还有一个堆栈模型的坑,先留着,我日后来填(滑稽护体)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值