在lisp中将数字转换为字符串

时间:2013-04-25 16:59:12

标签: lisp common-lisp itoa

我试图找到一个lisp函数来在数字和字符串之间进行转换,在稍微使用googling之后,我喜欢一个具有相同名称的函数。当我输入(itoa 1) SLIME打印时:

Undefined function ITOA called with arguments (1) .

我该如何进行转换?

3 个答案:

答案 0 :(得分:38)

从数字到字符串:

(write-to-string 5)
"5"

您可以将字符串转换为任何数字符号:

(write-to-string 341 :base 10)
"341"

从字符串到数字:

(parse-integer "5")
5

带一些垃圾

(parse-integer " 5 something not a number" :junk-allowed t)
5

或者使用它:

(read-from-string "23 absd")
23

答案 1 :(得分:14)

重量级解决方案是使用FORMAT:

[2]> (format nil "~A" 1)
"1"

还有WRITE-TO-STRING

[3]> (write-to-string 10)
"10"

答案 2 :(得分:0)

仅供参考:我相信(itoa#)只是AutoLISP中的一个功能 - 嵌入在AutoCAD绘图软件中的LISP变体。 AutoLISP的功能远远少于Common Lisp,有时功能相同,功能不同,名称或功能相同,操作方式不同。

这可能就是为什么它不适合你。我经常使用AutoLISP,(itoa#)会完全按照您的意愿使用。