StringBuffer或者StringBuilder在指定位置插入字符串

您所在的位置:网站首页 java怎么在字符串中加字符数据 StringBuffer或者StringBuilder在指定位置插入字符串

StringBuffer或者StringBuilder在指定位置插入字符串

2024-07-10 19:40| 来源: 网络整理| 查看: 265

在做一个检索结果查询条件部分高亮的时候,用到了在指定位置插入高亮代码的功能。 只要我们确定插入的开始索引,或者末尾索引,直接调用StringBuffer或者StringBuilder的insert方法即可。 下面是我的部分代码示例:

String split = "Metal"; String metalValue = "testMetalValue"; StringBuffer sb = new StringBuffer(metalValue); int startFlag = metalValue.indexOf(split); int endFlag = startFlag + split2.length(); sb.insert(endFlag,""); sb.insert(startFlag,""); metalValue = sb.toString(); sb.setLength(0);

我拿到的原始数据是String类型,String final不可变,所以我把他转为StringBuffer,当然你们可以转成StringBuilder,前者线程安全,后者不安全,效率高。 这时候metalValue就会高亮你查询的部分结果。

StringBuffer的构造函数的参数可以是int类型的数值,代表容量capacity,也可以是String类型,这样StringBuffer的内容就是String参数的值。setLength(0)是做了一个清空操作,防止后边继续追加或插入导致结果不对。insert()的两个参数分别是索引值和插入的值这里为什么我要先要以endFlag插入呢?因为如果我先从startFlag插入,会改变StringBuffer的长度,导致后面以endFlag插入错误。但是我如果先以endFlag插入,startFlag不会受到影响。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3