在Common Lisp中,是否有一个谓词来测试给定字符是否是字符串的一部分?或者更一般地说,如果元素是向量的成员?
就像是:
(char-in #\o "foo")
Run Code Online (Sandbox Code Playgroud)
我能够实现它
(defun char-in (c s)
(member c (coerce s 'list)))
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
Rai*_*wig 10
字符串是向量.载体是序列.
字符串是向量和序列.所以他们的所有操作都适用:
查找项目:
CL-USER 59 > (find #\X "fooXbar")
#\X
CL-USER 60 > (find #\x "fooXbar")
NIL
Run Code Online (Sandbox Code Playgroud)
找到项目的位置:
CL-USER 61 > (position #\x "fooXbar")
NIL
CL-USER 62 > (position #\X "fooXbar")
3
Run Code Online (Sandbox Code Playgroud)
搜索子序列:
CL-USER 63 > (search "X" "fooXbar")
3
CL-USER 64 > (search "x" "fooXbar")
NIL
Run Code Online (Sandbox Code Playgroud)
默认测试是EQL
所有函数都EQL用作默认测试,但您可以使用另一个函数- 例如,不区分大小写的查找将是:
CL-USER 65 > (find #\x "fooXbar" :test #'char-equal)
#\X
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |