2011-03-03 10 views
15

¿Cómo obtengo el valor ASCII de un personaje en Ruby 1.9?Valor ASCII del personaje en Ruby

He buscado en Internet por todas partes, pero sin éxito. He intentado con "x" y "x" [0], pero todo lo que devuelven es "x".

+0

posible duplicado de [Obteniendo un código de carácter ascii en ruby ​​-? falla] (http://stackoverflow.com/questions/1270209/getting-an-ascii-character-code-in-ruby-fails) –

+4

"Busqué en Internet por todas partes, pero sin éxito". Hmm. Los [motores de búsqueda] (http://www.google.com/search?q=ruby+1.9+character+ordinal+value) deben haber tenido un mal día. –

+3

@the Tin Man: Tal vez el OP no sabía la palabra "ordinal". –

Respuesta

35

El método String#ord hará el truco:

ruby-1.9.2-p136 > 'x'.ord 
=> 120 
ruby-1.9.2-p136 > '0'.ord 
=> 48 
ruby-1.9.2-p136 > ' '.ord 
=> 32 
+0

'p' [0] .ord => 112 –

14

También puede utilizar

ruby-2.0.0p353 > "x".sum 
=> 120 

ruby-2.0.0p353 > "a string".sum 
=> 792 

El método 'suma' da como resultado la suma de todos los códigos de caracteres, pero si se pone sólo un carácter que le dará el código de sólo el que uno.

+3

+1 por valor educativo. – mydoghasworms

+1

También parece que .ord necesita UTF-8 correcto, pero a ese .sum no le importa. –

+0

0.ord funcionará, devolviendo 0, el valor de ascii. Sin embargo, 0.sum no lo hará, devuelve un método no definido para Fixnum. – jasonleonhard

Cuestiones relacionadas