8

たとえば、任意Stringの に対して

val s = "abde"

c: Charの後に、位置 2 に文字を挿入するb方法

アップデート

ランダムな位置で複数の効率的な挿入と削除を行うには、どの Scala コレクションを考慮する必要がありますか? String( aがそのコレクションに変換される可能性があると仮定します。)

4

3 に答える 3

6

これを試して

val (fst, snd) = s.splitAt(2)
fst + 'c' + snd
于 2014-08-11T07:25:39.697 に答える
2

Rope データ構造は、特に挿入と削除に関して、(非常に) 大きな文字列での重い操作にString代わる有効な方法であることが証明されています。StringBuffer

Scalazにはclass Rope[A]( APIRope.scalaを参照) とclass WrappedRope[A]( APIを参照) が含まれており、ロープ文字列に対する多数の操作が含まれています。

Java での実装にはhttp://ahmadsoft.org/ropes/が含まれます。この Java 実装のベンチマーク調査は、http://www.ibm.com/developerworks/library/j-ropes/にあります。

ひもに代わるロープに関する出版物は、http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.14.9450&rep=rep1&type=pdfにあります。

于 2014-08-14T18:40:04.707 に答える