本节介绍用于在字符、字符串和整数之间进行转换的函数。format(see 格式化字符串)和 prin1-to-string(see 输出函数)也可将 Lisp 对象转换为字符串。read-from-string(see 输入函数)能够将 Lisp 对象的字符串表示形式转换为对象。string-to-multibyte 和 string-to-unibyte 函数用于转换字符串的文本编码形式(see Converting Text Representations)。
有关生成文本字符和通用输入事件的文本描述的函数,see Documentation(single-key-description 和 text-char-description)。这些函数主要用于生成帮助信息。
该函数返回一个字符串,内容为数字 number 的十进制打印形式。若参数为负数,返回值以负号开头。
(number-to-string 256)
⇒ "256"
(number-to-string -23)
⇒ "-23"
(number-to-string -23.5)
⇒ "-23.5"
int-to-string 是该函数的半废弃别名。
另请参见《格式化字符串》章节中的 format 函数。
该函数返回字符串 string 中字符对应的数值。若 base 非-nil,则其必须是 2 到 16(包含边界)之间的整数,此时将按该进制转换整数。若 base 为nil,则使用十进制。浮点数值转换仅支持十进制;我们未实现其他进制的浮点数转换,因为这需要大量额外工作,且实用性不高。
解析过程会跳过 string 开头的空格和制表符,然后读取 string 中能被解释为指定进制数字的最长部分。(在部分系统中,会忽略开头的其他空白字符,而非仅空格和制表符。)若 string 无法被解释为数字,该函数返回 0。
(string-to-number "256")
⇒ 256
(string-to-number "25 is a perfect square.")
⇒ 25
(string-to-number "X256")
⇒ 0
(string-to-number "-4.5")
⇒ -4.5
(string-to-number "1e5")
⇒ 100000.0
该函数返回一个新字符串,其中包含单个字符 character。由于 string 函数的功能更通用,此函数已半废弃。See 创建字符串。
该函数返回字符串 string 的第一个字符。其功能基本等同于(aref string 0),区别在于若字符串为空,该函数返回 0(当 string 首个字符为空字符(ASCII 码 0)时,返回值同样为 0)。若该函数的实用性不足以保留,未来可能会被移除。
以下是其他可用于字符串转换的函数:
concat将向量或列表转换为字符串。 See 创建字符串。
vconcat将字符串转换为向量。 See 向量相关函数。
append将字符串转换为列表。 See 构建 cons 单元与列表。
byte-to-string将一个字节的字符数据转换为单字节字符串。 See Converting Text Representations。