StringBuilder类用法解析 每日短讯
一、StringBuilder说明
StringBuilder是一个可变的字符序列。这个类提供了一个与StringBuffer兼容的API,但不保证同步,即StringBuilder不是线程安全的,而StringBuffer是线程安全的。显然,StringBuilder要运行的更快一点。
(资料图片仅供参考)
这个类被设计为在字符串缓冲区所在的地方作为StringBuffer的临时替代品使用由单个线程使用(通常是这样)。在可能的情况下,建议优先使用该类而不是StringBuffer,因为在大多数实现中它会更快。
二、StringBuilder特点
(1)该类继承了AbstractStringBuilder,实现了java.io.Serializable和CharSequence。
(2)是一个字符串缓冲器,可以理解为一个容器。
(3)可以存储多种类型的数据,但是最终会通过String.valueof()方法将其转换为String类型再存入StringBuilder。
(4)在其无参构造中,初始化长度为16,在有参构造中可以根据业务场景来自定义其长度,尽可能的去自定义长度,减少扩容的资源消耗。
(5)它是一个线程不安全的,但是速度上有:StringBuilder(可变,线程不安全) > StringBuffer(可变,线程安全) > String(不可变,安全) 。
(6)具有天然的增删改查方法如append(),insert(),deletecharAt(),delete(),reverse(),replace()等。
(7)通过toString()方法可以将其转换为一个String类型,该方法返回的是一个String类型的字符串副本。
三、StringBuilder常用方法
(1)无参构造函数
public StringBuilder() { super(16); // 调用父类的构造方法,并默认初始化长度为16}其中super(16)表示:
AbstractStringBuilder(int capacity) { value = new char[capacity]; // 初始化一个长度为16的char型可变数组}
(2)有参构造(两种)
public StringBuilder(String str) { super(str.length() + 16); // 通常调用父类的构造方法,但参数为传入字符串的长度+16 append(str); // 将入参str添加到stringbuilder中 }public StringBuilder(CharSequence seq) { // CharSequence 是一个描述字符串结构的接口,在这个接口里一共有三个常用的子类:String,StringBuffer,StringBuilder this(seq.length() + 16); append(seq); }
(3)添加方法
public StringBuilder append(StringBuffer sb) { super.append(sb); return this; }@Overridepublic StringBuilder append(CharSequence s) { super.append(s); return this; } @Overridepublic StringBuilder append(CharSequence s, int start, int end) { super.append(s, start, end); return this; }@Overridepublic StringBuilder append(char[] str) { super.append(str); return this; }@Overridepublic StringBuilder append(char[] str, int offset, int len) { super.append(str, offset, len); return this; }@Overridepublic StringBuilder append(boolean b) { // 这里的入参还可以替换为char,int,float,long,double super.append(b); return this; }
(4)删除方法
@Overridepublic StringBuilder delete(int start, int end) { super.delete(start, end); // 删除[start, end)区间内的字符串 return this; }@Overridepublic StringBuilder deleteCharAt(int index) { // 删除指定索引位置的字符串 super.deleteCharAt(index); return this; }
(5)插入(修改)方法
@Overridepublic StringBuilder insert(int index, char[] str, int offset, int len){ super.insert(index, str, offset, len); return this; } @Overridepublic StringBuilder insert(int offset, Object obj) { super.insert(offset, obj); return this; } @Overridepublic StringBuilder insert(int offset, String str) { super.insert(offset, str); return this; }@Overridepublic StringBuilder insert(int offset, char[] str) { super.insert(offset, str); return this; }@Overridepublic StringBuilder insert(int dstOffset, CharSequence s) { super.insert(dstOffset, s); return this; }@Overridepublic StringBuilder insert(int dstOffset, CharSequence s, int start, int end){ super.insert(dstOffset, s, start, end); return this; }@Overridepublic StringBuilder insert(int offset, boolean b) { // 这里的第二个入参还可以替换为char,int,float,long,double super.insert(offset, b); return this; }
@Overridepublic StringBuilder replace(int start, int end, String str) { // 替换方法 super.replace(start, end, str); return this;}
(6)查询方法(类似于String中的查询从某个索引位置0/fromIndex开始字符串str第一次/最后一次出现的索引位置的方法)
@Overridepublic int indexOf(String str) { return super.indexOf(str); }@Overridepublic int indexOf(String str, int fromIndex) { return super.indexOf(str, fromIndex); }@Overridepublic int lastIndexOf(String str) { return super.lastIndexOf(str); }@Overridepublic int lastIndexOf(String str, int fromIndex) { return super.lastIndexOf(str, fromIndex); }
(7)反转StringBuilder
@Overridepublic StringBuilder reverse() { super.reverse(); return this; }
(8)toString()方法
@Overridepublic String toString() { // Create a copy, don"t share the array return new String(value, 0, count); // 返回了一个新的String类型的字符串 }
标签:
抢先读
- 世界快资讯丨2023浙江宁波市文化广电旅游局事业单位招聘拟聘用人员公示
- 快递红章证明图片模板(快递红章证明)|环球微头条
- 野村:维持百济神州(06160.HK)“买入”评级 目标价升至186.87港元_世界速读
- 【环球聚看点】大学生电影节落幕 朱一龙、奚美娟获最受欢迎男女演员
- 天天观热点:俞敏洪建议 24 节气都放假,放假的时间能用效率补回来
- 焦点速递!云南德宏州盈江县发生3.2级地震
- 拉萨市堆龙德庆区羊达街道举办2023年“扎念琴”成人培训班
- 半数旅游类上市公司一季度扭亏为盈 行业基本面回暖仍将持续
- 重庆2023成人高考报名要满足什么条件,报考流程是什么
- 世界即时看!2023年平顶山幼升小政策有哪些
- 青鸟消防:公司第三代“朱鹮”芯片已研发完成并量产
- 最新资讯:口袋妖怪最好玩的版本是哪一个_口袋妖怪最好玩的版本
- 正相关
- 10万左右,宝骏推电动“越野”
- 民办学校招生有补录名额吗?一文了解民办学校补录!-独家
- 汉语拼音教程_汉语拼音教程简单介绍_世界热门
- 天天要闻:用心教育显智慧,清波小学八位班主任同台竞技展风采!
- 官方回应大象现身农场如入无人之境:落单的野象,自行离开无影响-焦点快报
- 热讯:微粒贷利息怎么降低_微粒贷利息
- 全球短讯!今日时讯:曼联遭队史英超导致输球的最晚丢球 近3年英超运动战创造机会榜B费居首丁丁萨拉赫格10列前四
- 热门看点:活动多样化 居民乐开花
- 天真有邪林宥嘉微盘下载mp3_天真有邪林宥嘉微盘下载
- 今日2020年问题奶粉名单、不合格奶粉名单汇总
- 激浪青春_关于激浪青春介绍
- 年轻人爱读什么书
- 飞龙股份:已建立联系、定点及批量供货的新能源客户有蔚来、理想等118家-独家焦点
- 即时:部分传媒股热度不减,中国科传再创新高,长江传媒斩获四连板
- 河南省南阳农业职业学校口碑怎么样技术院招生简章院_世界快看点
- 动态焦点:谁还记得“国产最贵”8848手机?
- 哈维率领的阿尔萨德取得19胜3平的不败战绩 全球热推荐
- 中环装备5月5日快速上涨
- 教育板块掀涨停潮,好未来宣布承建国家新一代人工智能开放创新平台 世界速讯
- 西南证券:给予容百科技买入评级,目标价位85.05元
- 聚焦:中东“和解潮”为解决叙利亚问题带来新机遇
- 高颜值 高性价比 适合年轻人的个性纯电车推荐
- 吊顶材料哪个便宜(吊顶材料哪种好)
- 巴厘岛身亡中国公民尸检结果 什么情况? 天天视点
- 天天滚动:公司搬迁不给员工赔偿怎么办(如果公司搬迁员工不去 会有赔偿金吗)
- 汇川技术董秘回复:P7i电控是公司独家供应的
- 京东60亿建4000套员工公寓:史上最大福利 环球最新
- 小米下降 22%!Q1全球手机市场萎靡下滑 14%|今热点
- 环球观速讯丨2023年湖北襄阳市市直事业单位统一公开招聘笔试成绩有关事项公告
- 2023年最小自考考生如何快速通过考试的呢?
- 环球快讯:Castore 预测 2023 年收入增长 100%
- 机器人市场的网络安全增长数十亿|全球观天下
- 摄氏度和华氏度的换算物理应用题_摄氏度和华氏度的换算_头条焦点
- 今日播报!贵州大学明德学院怎么查分数线在河北招生
- 厦门旅游必去十大景点_提里奥弗丁怎么去 热点在线
- 这就是信心丨数据来了!一起感知沸腾的“五一”
- 每日热闻!回家的路有多远电视剧40集_讲述了什么内容
- 全球热点!行李箱怎么改密码双扣(行李箱怎么改密码)
- 天天观速讯丨格力博:5月4日融资买入980.24万元,融资融券余额1.47亿元
- 中邮证券:给予广汽集团买入评级
- 飘了!浙江首次打进总决赛,小将余嘉豪发推:还剩下4场球!|新消息
- 百事通!东海城东片区及晋江洛阳江两岸照明提升工程全部亮灯
- 仙帝传承我的老婆是香饽饽80集全集免费看
- 需求预期受压制 预计短期铁矿石或维持震荡走势
- 天天热点评!质选车:五菱缤果能否再次引领新能源潮流
- 世界报道:海南广电主持人五四青年节走基层活动造访洋浦消防
- 环球要闻:支付宝生活圈全部可见_支付宝 生活圈
- 2023广东河源市水资源办招聘编外人员拟聘用人员公示
- 心动公司涨超4%领涨游戏股 AI技术有助驱动游戏全产业链的升级
- 与青年对话:如何走出迷茫?
- 湖人爆发内讧!12+3悍将公开抨击哈姆,詹姆斯亲自出面都劝不住
- 广东音乐表演专业职校推荐前十-实时焦点
- DraftTopPro裸照开罐器
- 2023AWE回顾:海信激光显示技术创新,引领全场景显示应用
- 点赞!年迈老人误入了快车道,热心市民发现后赶紧带到安全区域-天天速看料
- 河北新增一所航空类高职院校 今年秋季开始招生 观天下
- 洛图科技:2022年中国大陆LED一体机出货量4300余台 每日消息
- 吉利出品!沃尔沃官宣:首款MPV年内推出,价格比极氪009贵!
- 政治对话才能重建和平(国际论坛)
- 拉什福德谈穆里尼奥 他执教的那个赛季是最好的赛季因为夺得了3座奖杯
- 天天热资讯!针灸理疗、高压氧舱、核酸检测……给宠物治病,他们有“独门武器”
- 萌兰三太子被抢注商标,系北京一印刷公司-天天简讯
- 社保缴费截止日期-社保缴费计算表
- 【天天新要闻】驰骋大漠 为祖国“加油”
- 2023 年英国最畅销汽车
- 环球百事通!2023自考本科报名流程及详细步骤
- 今日讯!华金证券:给予新益昌增持评级
- 全球今亮点!vivo手机如何截屏截图图片(vivo手机如何截屏截图)
- 天空之眼瞰古都西安 世界要闻
- 古诗分段有哪些 村居古诗分段?
- 欧元兑美元汇率走势分析:欧元在1.1030下方遇阻 关注美国非农就业数据|天天热文
- 今亮点!windows installer程序包有问题怎么解决(windows installer win7)
- 陌陌回应被苹果应用商店下架:技术问题导致 争取尽快上架
- 丝芭申请限制陈慧婧高消费
- 足球贺卡的制作方法
- ETF观察丨银行板块获主力资金净流入超8亿元,招商银行涨超2%,央企创新驱动ETF(515900)盘中溢价 当前信息
- 全球微速讯:大雪会造成很多房屋倒塌小明想知道屋顶的雪到底有多重(我想知道爱一个人的感觉到底怎样 我怎么感觉不到爱的痛 hellip hellip)
- 全球快看:株洲芦淞区:河长+检察长 春日巡河一公里
- 株洲西站“五一”假期运输圆满收官-环球快消息
- 世界看点:好听qq网名_好听网名大全
- 中科金财:公司近日已和微软云达成合作 获得调用AI和训练的许可-今日报
- oneg011相泽恋_oneg 001
- 巴比伦5将作为原作者的动画电影回归_即时
- 韩栩3裁判被骂上热搜!名嘴怒斥:太过分了,这样吹深圳没机会-每日讯息
- 武汉市“五一”假期火灾形势持续平稳-焦点要闻
- 2023年5月5日外汇期市数据:欧洲央行鸽派加息 欧元价格大幅下挫-天天快消息
- StringBuilder类用法解析 每日短讯