String
例如,对于任何给定的
val s = "abde"
如何c: Char
在位置 2 之后插入一个字符b
?
更新
在随机位置进行多次有效插入和删除时要考虑哪个 Scala 集合?(假设 aString
可以转换为该集合。)
String
例如,对于任何给定的
val s = "abde"
如何c: Char
在位置 2 之后插入一个字符b
?
更新
在随机位置进行多次有效插入和删除时要考虑哪个 Scala 集合?(假设 aString
可以转换为该集合。)
我们可以patch
在 s 上使用该方法String
,以便String
在特定索引处插入 a:
"abde".patch(2, "c", 0)
// "abcde"
这:
在索引处删除0
(第三个参数)元素2
"c"
在索引处插入2
换句话说,这意味着patching 0 elements at index 2 with the string "c"
。
试试这个
val (fst, snd) = s.splitAt(2)
fst + 'c' + snd
Rope 数据结构被证明是对(非常)大的字符串进行大量操作的有效替代方案String
,StringBuffer
尤其是在插入和删除方面。
Scalaz包括class Rope[A]
(参见API和Rope.scala)和class WrappedRope[A]
(参见API)以及对绳索的大量操作。
Java 中的实现包括http://ahmadsoft.org/ropes/。可以在http://www.ibm.com/developerworks/library/j-ropes/找到此 Java 实现的基准测试研究。
可以在http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.14.9450&rep=rep1&type=pdf找到关于绳索作为字符串替代品的出版物