📅  最后修改于: 2023-12-03 15:19:58.092000             🧑  作者: Mango
在 Scala 中,String 是不可变的,这意味着如果我们想要更改字符串,我们需要创建一个新的字符串对象。然而,Scala 提供了一个可变的字符串类 StringBuilder,它们允许我们修改现有字符串对象而不创建新的对象。
我们可以使用 new StringBuilder()
构造函数创建一个空的 StringBuilder 对象。
val sb = new StringBuilder()
如果我们需要初始化 StringBuilder 对象,我们可以在构造函数中传递初始字符串。
val sb = new StringBuilder("Hello")
我们可以使用 append
方法向 StringBuilder 中添加字符串。
sb.append(" World")
在 append
方法后,返回的是 StringBuilder 对象本身,因此可以使用链式调用。
sb.append(" World").append("!")
我们可以使用 toString
方法获取 StringBuilder 中的字符串。
val str = sb.toString()
我们可以使用 insert
方法在 StringBuilder 中插入字符串。
sb.insert(5, " ")
这将在字符串 "Hello" 后插入一个空格。
我们可以使用 delete
方法从 StringBuilder 中删除字符串。
sb.delete(5, 6)
这将删除字符串 "Hello" 中的空格。第一个参数是要删除的子字符串的起始索引,第二个参数是要删除的子字符串的结束索引。
我们可以使用 replace
方法替换 StringBuilder 中的字符串。
sb.replace(0, 5, "Hi")
这将把字符串 "Hello" 替换为 "Hi"。第一个参数是要替换的子字符串的起始索引,第二个参数是要替换的子字符串的结束索引,第三个参数是要替换成的字符串。
以下是一个完整的示例,演示了如何使用 StringBuilder。
val sb = new StringBuilder("Hello")
sb.append(" World").append("!")
sb.insert(5, " ")
sb.replace(0, 5, "Hi")
sb.delete(8, 9)
val str = sb.toString()
println(str)
输出:
Hi World!