2011-11-08 14 views

Respuesta

10

Un personaje es un número, es solo que Clojure se lo está mostrando como un char. La forma más fácil es simplemente lanzar ese carácter a un int.

p. Ej.

user=> (int \A) 
65 
user=> (int (.charAt "A" 0)) 
65 
+0

Iba a agregar que puedes hacer cálculos directamente sobre el personaje, pero parece que no puedes hacerlo en Clojure. Está representado como un java.lang.Character (en lugar de un char), y el carácter no extiende java.lang.Number, por lo que los operadores matemáticos no funcionan de la caja de caracteres en Clojure. – Bill

+0

al igual que con caracteres primitivos en Java, no creo que pueda agregarlos tampoco. – amalloy

+0

Siendo un novato en Clojure, todavía no he adaptado mi mente a tantas posibilidades. Gracias por ponerme en mi camino. – logigolf

10
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" 
+0

¡Una forma hermosa de convertir una cadena a sus valores decimales! – logigolf

Cuestiones relacionadas