CLISP语言中的字符串
CLISP中的字符串是一种特定类型的VECTOR,它的元素是字符。
- 字符串比较
字符串的比较基于字符的比较。
但是对于双重母音却与通常的自然规则不同,如:
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 表示返回值为一布尔类型值。
- 函数 EXT:STRING-WIDTH
(EXT:STRING-WIDTH string &KEY start end) 返回字符串占用字节数。
它的值是为字符串中每个字符的 CHAR-WIDTH 值的和。
- 函数 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
- 字符串截取,连接函数
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)
- 字符串清理
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) 编辑 收藏 举报