如何在Clojure中获取字符的ascii十进制值?

log*_*olf 10 ascii decimal clojure

user=> (char 65)
\A
user=> (char 97)
\a
user=> (str (char 65))
"A"
user=> (str (char 97))
"a"
Run Code Online (Sandbox Code Playgroud)

这些是ascii十进制值中的字符...如何从字符中获取ascii十进制值?

Bil*_*ill 11

一个字符是一个数字,只是clojure作为一个字符显示给你.最简单的方法是将该char转换为int.

例如

user=> (int \A)
65
user=> (int (.charAt "A" 0))
65
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您不能在 ClojureScript 中使用它。在这种情况下,您需要 `(.charCodeAt \A 0)`。请参阅http://stackoverflow.com/questions/37775349/ordinal-int-ascii-value-of-character (2认同)

BLU*_*IXY 11

user=> (doseq [c "aA"] (printf "%d%n" (int c)))
97
65
nil
user=> (map int "aA");;
(97 65)
user=> (apply str (map char [97 65]))
"aA"
Run Code Online (Sandbox Code Playgroud)