4.6 字符串转换
本节介绍了字符、字符串和整数之间进行转换的函数。函数 format 和 函数 prin1-to-string 可以将 Lisp 对象转换为字符串。函数 read-from-string 可以将 字符串转换为对应的 Lisp 对象。函数 string-to-multibyte 和 函数 string-to-unibyte 可以改变字符串的文本表示。
--
函数: number-to-string number
该函数返回数字对应的十进制的字符表示。如果参数为负值,那么返回值会以一个减号开头。
int-to-string 是该函数的一个别名。
参见 字符串格式化章节的 format 函数。
函数: string-to-number string & optional base
该函数返回字符串对应的数字。若参数 base 要么为 nil,要么为 2-16 之间的一个整数,该参数会作为转换的基数。若参数 base 为 nil,则意味着使用十进制,浮点数转换仅在十进制的时候才会生效;我们没有实现基于其他进制的浮点数转换,因为他们很复杂,而且似乎也没啥用。若一个字符串对应的整数大小超出了 Lisp 整数的范围,那么该函数会将其自动转换为浮点数,并作为结果返回。
字符串解析会跳过字符串起始位置空格、制表符,然后尽可能贪婪的读取可以转换为数字的字符。(在某些系统中,还会忽略其他的空白符号。)如果参数 string 不能被解释为数字,那么该函数会返回 0.
string-to-int 是该函数的一个别名。
函数: char-to-string character
该函数返回字符对应的字符串。这个函数即将被废弃,因为函数 string 更加通用。查阅 创建字符串章节。
函数: string-to-char string
这个函数返回 string 中出现的第一个字符。该函数和 (aref string 0) 非常相似,不同点在于若 string 为空,该函数会返回 0. (若 string 中第一个字符为 null 字符,ASCII 中的 0 ,则该函数也会返回 0.) 这个函数在将来可能会被废弃,以为它似乎不是很实用。
这里还有一些其他函数用于做字符串转换:
concat
该函数将向量或列表转换为字符串。详情查阅 创建字符串。
vconcat
该函数将字符串转换为向量。详情查阅 向量函数。
append
该函数将字符串转换为列表。详情查阅 构建列表。
byte-to-string
该函数将字符数据中的字节转换为单字节字符串。详情查阅 表示转换。
最后更新于
这有帮助吗?