【2023】Kotlin教程 第一篇 Kotlin基础 第6章 字符串 6.3 可变字符串

文章介绍了Kotlin中的可变字符串概念,重点关注StringBuilder类的使用,包括不同构造函数、字符串长度和容量,以及如何进行追加、插入、删除和替换等操作。示例代码展示了StringBuilder的各种功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【2023】Kotlin教程

在这里插入图片描述

第一篇 Kotlin基础

第6章 字符串

6.3 可变字符串

可变字符串在追加、删除、修改、插入和拼接等操作不会产生新的对象

6.3.1 StringBuilder

Kotlin提供不可变字符串类是kotlin.text.StringBuilder,StringBuilder的中构造函数有4个:

  1. StringBuilder()。创建字符串内容是空的StringBuilder对象,初始容量默认为16个字符。
  2. StringBuilder(seq: CharSequence)。指定CharSequence字符串创建StringBuilder对象。CharSequence接口类型,它的实现类有:String和StringBuilder等,所以参数seq可以是String和StringBuilders等类型。
  3. StringBuilder(capacity: Int)。创建字符串内容是空的StringBuilderx对象,初始容量由参数capacity指定的。
  4. 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)
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ding Jiaxiong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值