【2023】Kotlin教程
第一篇 Kotlin基础
第6章 字符串
6.3 可变字符串
可变字符串在追加、删除、修改、插入和拼接等操作不会产生新的对象
6.3.1 StringBuilder
Kotlin提供不可变字符串类是kotlin.text.StringBuilder,StringBuilder的中构造函数有4个:
- StringBuilder()。创建字符串内容是空的StringBuilder对象,初始容量默认为16个字符。
- StringBuilder(seq: CharSequence)。指定CharSequence字符串创建StringBuilder对象。CharSequence接口类型,它的实现类有:String和StringBuilder等,所以参数seq可以是String和StringBuilders等类型。
- StringBuilder(capacity: Int)。创建字符串内容是空的StringBuilderx对象,初始容量由参数capacity指定的。
- StringBuilder(str: String)。指定String字符串创建StringBuilder对象。
举个栗子:
fun main(args: Array<String>) {
// 字符串长度length和字符串缓冲区容量capacity
val sbuilder1 = StringBuilder()
println("字符串长度:" + sbuilder1.length)
println("字符串容量:" + sbuilder1.capacity())
val sbuilder2 = StringBuilder("Hello")
println("字符串长度:" + sbuilder2.length)
println("字符串容量:" + sbuilder2.capacity())
// 字符串缓冲区初始容量是16, 超过之后会扩容
val sbuilder3 = StringBuilder()
for (i in 0..16) {
sbuilder3.append(8)
}
println("字符串长度:" + sbuilder3.length)
println("字符串容量:" + sbuilder3.capacity())
}
6.3.2 字符串追加、插入、删除和替换
StringBuilder在提供了很多修改字符串的函数,追加、插入、删除和替换等,对应的函数分别是append、insert、delete和replace函数,这些函数不会产生新的字符串对象,而且它们的返回值还是StringBuilder。.
举个栗子:
fun main(args: Array<String>) {
// 添加字符串、字符
val sbuilder1 = StringBuilder("Hello")
sbuilder1.append(" ").append("World")
sbuilder1.append('.')
println(sbuilder1)
val sbuilder2 = StringBuilder()
val obj: Any? = null
// 添加布尔值、转义符和空对象
sbuilder2.append(false).append('\t').append(obj)
println(sbuilder2)
// 添加数值
val sbuilder3 = StringBuilder()
for (i in 0..9) {
sbuilder3.append(i)
}
println(sbuilder3)
// 插入字符串
sbuilder3.insert(4, "Kotlin")
println(sbuilder3)
// 删除字符串
sbuilder3.delete(1, 2)
println(sbuilder3)
// 替换字符串
sbuilder3.replace(3, 9, "A")
println(sbuilder3)
}