如何解决字符串修剪不适用于全局变量
为什么String-trim在Common Lisp中的全局变量上不起作用?
(defvar *whitespaces* '(#\Space #\Newline #\Backspace #\Tab
#\Linefeed #\Page #\Return #\Rubout))
(defvar *str* "Hello World")
(defun trim (s)
(string-trim *whitespaces* s))
(print (trim *str*))
;; output "Hello World"
解决方法
如manual中所述:
string-trim
返回一个字符串子字符串,其中字符袋中的所有字符均从开头和结尾处去除。
所以
CL-USER> (defvar *str* " Hello World ")
*STR*
CL-USER> (trim *str*)
"Hello World"
如果要删除单词之间的所有空格字符,可以使用某些库,例如cl-str
:
CL-USER> (ql:quickload "str")
...
CL-USER> (str:collapse-whitespaces *str*)
"Hello World"
T
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。