Tôi có một chuỗi trong Clojure và một ký tự mà tôi muốn đặt ở giữa ký tự thứ n và (n + 1). Ví dụ: Cho phép nói chuỗi là "aple" và tôi muốn chèn một "p" khác giữa "p" và "l".Clojure: Cách thành ngữ để chèn một Char vào một chuỗi
(prn
(some-function "aple" "p" 1 2))
;; prints "apple"
;; ie "aple" -> "ap" "p" "le" and the concatenated back together.
Tôi thấy điều này hơi khó khăn, vì vậy tôi cho rằng tôi thiếu thông tin về một số chức năng hữu ích (s) Ai đó có thể giúp tôi viết "một số chức năng" ở trên có chuỗi, một chuỗi khác, vị trí bắt đầu và vị trí kết thúc và chèn chuỗi thứ hai vào vị trí đầu tiên giữa vị trí bắt đầu và vị trí kết thúc? Cảm ơn trước!
Nhân tiện, sự khác biệt về tốc độ khá rõ rệt. Điểm chuẩn nhanh chóng của Criterium cho tôi biết '(str-insert" aple "" p "1)' mất khoảng 180 ns, nhỏ hơn 12,5 lần so với phiên bản 2.25 µs dựa trên seq. –
Lưu ý 'subs' bao bọc 'chuỗi con' và' str' của Java sử dụng 'StringBuilder'. Tôi không nghĩ rằng nó có thể làm tốt hơn. –