Ich habe eine Zeichenfolge in Clojure und ein Zeichen, das ich zwischen dem n-ten und (n + 1) st-Zeichen setzen möchte. Zum Beispiel: Nehmen wir an, die Zeichenfolge ist "aple" und ich möchte ein weiteres "p" zwischen "p" und "l" einfügen.Clojure: Idiomatische Möglichkeit, ein Zeichen in eine Zeichenfolge einzufügen
(prn
(some-function "aple" "p" 1 2))
;; prints "apple"
;; ie "aple" -> "ap" "p" "le" and the concatenated back together.
Ich finde das etwas schwierig, so dass ich denke, ich Informationen über einige nützliche Funktion bin fehlt (e) Kann mir bitte jemand helfen, die „etwas-Funktion“, schreiben darüber einen String, eine andere Zeichenfolge, eine Startposition und eine Endposition und fügt den zweiten String in den ersten zwischen der Startposition und der Endposition ein? Danke im Voraus!
Übrigens ist der Unterschied in der Geschwindigkeit ziemlich ausgeprägt. Ein Criterium Quick Benchmark sagt mir '(str-insert" Ap "" p "1)' dauert etwa 180 ns, was 12,5x weniger als die Seq-basierte Version ist 2,25 μs. –
Hinweis 'subs' umschließt die' substring' von Java und 'str' verwendet' StringBuilder'. Ich denke nicht, dass es besser geht. –