7 lisp string character common-lisp
我有一个字符ch,我想附加到字符串str.我意识到你可以连接像这样的字符串:
(setf str (concatenate 'string str (list ch)))
Run Code Online (Sandbox Code Playgroud)
但这似乎效率很低.是否有更快的方法来追加单个字符?
Rai*_*wig 11
如果字符串有填充指针,也可以调整.
Adjustable =可以改变它的大小.
fill-pointer =内容大小,长度,可以小于字符串大小.
VECTOR-PUSH =在末尾添加一个元素并递增填充指针.
VECTOR-PUSH-EXTEND= as VECTOR-PUSH,另外调整数组大小,如果它太小.
我们可以用正常的字符串制作一个可调节的字符串
CL-USER 32 > (defun make-adjustable-string (s)
(make-array (length s)
:fill-pointer (length s)
:adjustable t
:initial-contents s
:element-type (array-element-type s)))
MAKE-ADJUSTABLE-STRING
CL-USER 33 > (let ((s (make-adjustable-string "Lisp")))
(vector-push-extend #\! s)
s)
"Lisp!"
Run Code Online (Sandbox Code Playgroud)