CLISP语言中的字符串

发布: 2008-07-23 07:49

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中的字符去掉。





原文: http://qtchina.tk/?q=node/211

Powered by zexport