drswinghead

主站网址

导航

CLISP语言中的字符串

CLISP中的字符串是一种特定类型的VECTOR,它的元素是字符。

  1. 字符串比较

    字符串的比较基于字符的比较。

    但是对于双重母音却与通常的自然规则不同,如:

    o < oe < z < ö

    字符串比较函数:

  • string= string1 string2 &key start1 end1 start2 end2 ==> generalized-boolean 相等比较
  • string/= string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 不等比较
  • string< string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 小于比较
  • string> string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 大于比较
  • string<= string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 小于或等于比较
  • string>= string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 大于或等于比较
  • string-equal string1 string2 &key start1 end1 start2 end2 ==> generalized-boolean 相等比较
  • string-not-equal string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 不等比较
  • string-lessp string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 小于比较
  • string-greaterp string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 大于比较
  • string-not-greaterp string1 string2 &key start1 end1 start2 end2 ==> mismatch-index 小于或等于比较,不大于比较
  • string-not-lessp string1 string2 &key start1 end1 start2 end2 ==> mismatch-inde 大于或等于比较,不小于比较

注:

  • &key 表示后面的参数都是可选参数。
  • 在上面几个函数中,如果指定了可选参数,表示拿子串来比较。
  • mismatch-index 表示不匹配的开始字符位置。
  • generalized-boolean 表示返回值为一布尔类型值。
  1. 函数 EXT:STRING-WIDTH

    (EXT:STRING-WIDTH string &KEY start end) 返回字符串占用字节数。

    它的值是为字符串中每个字符的 CHAR-WIDTH 值的和。

  2. 函数 EXT:STRING-INVERTCASE 和 EXT:NSTRING-INVERTCASE

    (EXT:STRING-INVERTCASE string &KEY start end) 和 (EXT:NSTRING-INVERTCASE string &KEY start end)

    这两个函数与字符操作函数 CHAR-INVERTCASE 类似。

    它的值为字符串中每个字符的 CHAR-INVERTCASE 组成的字符串。

    相关的函数还有:STRING-UPCASE , STRING-DOWNCASE

  3. 字符串截取,连接函数

    SUBSTRING string start &key end ==>子串

    使用 format 函数进行字符串连接操作:

    CL> (format nil "~a~a" "ab" "cd") "abcd"

    还可以直接调用C 库的方法。

    取字符串的字符函数:

    char string index ==> character

    schar string index ==> character

    取字符串string 中第 index 位的字符。

    相关函数: elt sequence index 序列中的 index 位的对象

    (setq str (copy-seq "0123456789")) ==> "0123456789" (setf (elt str 0) ##) ==> ## 替换了0为 #

    相关函数: aref array &rest subscripts ==> element

    取得数组中的一个元素

    (char s j) == (aref (the string s) j)

  4. 字符串清理

    STRING-TRIM character-bag string ==> trimmed-string

    STRING-LEFT-TRIM

    STRING-RIGHT-TRIM

    分别将字符串两头,左边,右边的包含在 character-bag中的字符去掉。

posted on 2010-06-20 08:35  drswinghead  阅读(148)  评论(0编辑  收藏  举报