代码之家  ›  专栏  ›  技术社区  ›  Gradient

检查字符是否在字符串中

  •  3
  • Gradient  · 技术社区  · 8 年前

    比如:

    (char-in #\o "foo")
    

    我能够实现它作为

    (defun char-in (c s)
      (member c (coerce s 'list)))
    

    有更好的办法吗?

    1 回复  |  直到 8 年前
        1
  •  11
  •   Rainer Joswig mmmmmm    8 年前

    sequences . 所有的操作都适用于:

    CL-USER 59 > (find #\X "fooXbar")
    #\X
    
    CL-USER 60 > (find #\x "fooXbar")
    NIL
    

    查找项目的位置:

    CL-USER 61 > (position #\x "fooXbar")
    NIL
    
    CL-USER 62 > (position #\X "fooXbar")
    3
    

    CL-USER 63 > (search "X" "fooXbar")
    3
    
    CL-USER 64 > (search "x" "fooXbar")
    NIL
    

    所有函数使用 EQL 作为默认测试,但您可以使用另一个-例如,不区分大小写的查找将是:

    CL-USER 65 > (find #\x "fooXbar" :test #'char-equal)
    #\X