For any given String
, for instance
val s = "abde"
how to insert a character c: Char
at position 2, after b
?
Update
Which Scala collection to consider for multiple efficient insertions and deletions at random positions ? (Assuming that a String
may be transformed into that collection.)
Rope data structure proves a valid alternative to String
and StringBuffer
for heavy manipulation in (very) large strings, especially in regard to insertions and deletions.
Scalaz includes class Rope[A]
(see API and Rope.scala) and class WrappedRope[A]
(see API) with a plethora of operations on rope strings.
Implementations in Java include http://ahmadsoft.org/ropes/. A benchmarking study for this Java implementation may be found at http://www.ibm.com/developerworks/library/j-ropes/ .
A publication on ropes as an alternative to strings may be found at http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.14.9450&rep=rep1&type=pdf