Java StringBuilder 教程显示了如何在 Java 中使用StringBuilder
。 Java String
对象是不可变的。 只能创建原始字符串的修饰副本。 当我们需要就地修改字符串时,可以使用StringBuilder
。
StringBuilder
StringBuilder
是可变的字符序列。 当我们想就地修改 Java 字符串时,使用StringBuilder
。 StringBuffer
是类似于StringBuilder
的线程安全等效项。
StringBuilder
具有允许修改字符串的方法,例如append()
,insert()
或replace()
。
Java StringBuilder
构造函数
StringBuilder
具有四个构造函数:
构造器 | 描述 |
---|---|
StringBuilder() |
创建一个初始容量为 16 个字符的空字符串构建器 |
StringBuilder(CharSequence seq) |
从CharSequence 创建一个字符串生成器 |
StringBuilder(int capcity) |
用指定的首字母创建一个空的字符串生成器 |
StringBuilder(String str) |
从指定的字符串创建字符串生成器 |
Java StringBuilder
是可变的
Java String
是不可变的,而StringBuilder
是可变的。
MutableImmutableEx.java
该示例演示了String
和StringBuilder
之间的主要区别。
Java String
具有replace()
方法,但它不会修改原始字符串。 而是创建修改后的副本。
另一方面,StringBuilder
替换字符串。
这是输出。
Java StringBuilder
追加方法
StringBuilder
包含几个重载append()
方法,它们在字符串的末尾添加一个值。
StringBuilderEx.java
该示例从数百个小字符串中构建一个大字符串。 字符串的格式如下:1 + 2 + 3 + … + MAX_VAL = SUM。
空的StringBuilder
被创建。
将创建一个值范围 1..MAX_VAL。 我们使用forEach()
方法迭代这些值。
我们使用append()
方法将当前值附加到字符串生成器。
为了使输出适合屏幕,我们在每十个值之后添加一个换行符。
在这些值之间,我们添加“ +”或“ =”字符。
在字符串的末尾,我们添加值的总和。
最后,字符串被打印到控制台。
StringBuilder
插入方法
insert()
方法用于将字符串插入构建器的指定位置。
StringBuilderInsertEx.java
该示例使用insert()
方法将字符串插入句子中。
我们创建了这句话。
获取子字符串的索引
indexOf()
方法返回第一次出现的子字符串,而lastIndexOf()
方法返回最后出现的子字符串。
StringBuilderIndexesEx.java
该示例使用indexOf()
和lastIndexOf()
方法来获取“狼”子字符串的索引。
我们使用append()
方法创建一个字符串生成器。
我们从生成器中首次获得“狼”一词。
从索引 15 开始,我们从构建器中首次获得“狼”术语。
同样,我们获得“ wolf”子字符串的最后一次出现。
This is the output.
StringBuilder
替换方法
replace()
方法用指定的新字符串替换字符串生成器中的子字符串。
StringBuilderReplaceEx.java
该示例将“ fox”子字符串替换为“ dog”字符串。
我们找到要替换的子字符串的开始索引。
在我们的操作中,我们需要知道子字符串的长度。
我们称为replace()
方法。 第一个参数是要删除的子字符串的开始索引,第二个参数是要删除的子字符串的结束索引。 第三个参数是新字符串。
StringBuilder
删除字符
在字符串构建器中,有两种删除字符的方法。
StringBuilderRemoveEx.java
该示例从字符串中删除一些字符。
使用delete()
方法,我们删除了由索引指定的子字符串。
使用delete()
方法,我们删除一个字符; 在我们的情况下,它是多余的空格字符。
This is the output.
StringBuilder
子字符串
使用substring()
方法可以从字符串返回子字符串。
StringBuilderSubstringsEx.java
在示例中,我们检索了两个子字符串。
该行检索起始索引为 15 且终止索引为 18 的子字符串。
在这里,我们检索从索引 15 到句子结尾的子字符串。
This is the output.