【问题标题】:Converting Char to Integer in Common Lisp在 Common Lisp 中将字符转换为整数
【发布时间】:2019-05-30 20:45:15
【问题描述】:

将字符#\1 转换为整数1 的正确方法是什么? 我将一个数字强制到一个列表中并得到了这个: (#\1 #\2 #\3)

并希望将其转换为

(1 2 3)

【问题讨论】:

    标签: types lisp common-lisp


    【解决方案1】:
    CL-USER > (digit-char-p #\1)
    1
    

    digit-char-p 返回

    • 字符的数值,如果是数字字符
    • NIL 否则

    因此两者兼而有之:

    • 谓词,因为数字是 true
    • 一个转换函数

    【讨论】:

    • 喜欢它的二元性,因为它似乎也是一个谓词:)
    • @Sylwester 最后的-p 告诉你这是一个谓词,然后你才知道它的任何其他内容。
    • @Sylwester 它也是一个谓词,因为它返回一个数字或NIL,如果该数字未在其可选的基数参数中定义。
    【解决方案2】:

    对低技术解决方案有点爱?

    (parse-integer (string #\1))
    

    效率较低,但仍然值得一提。

    【讨论】:

    • (- (char-int #\1) (char-int #\0))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多